我正在学习使用this excellent tutorial的Ruby on Rails,并且我注意到作者始终指定Gemfile中的Gem版本号(请参阅here,here和here)。这是我应该养成的习惯吗?如果是这样,我怎么知道要指定的版本?在构建Ruby on Rails应用程序时指定Gem版本
1
A
回答
2
我建议不是指定宝石版本,直到你已经发现与特定宝石不兼容。
Bundler将自己锁定特定版本的宝石。您只需要记住在生产机器上使用bundle install --deployment
,并且仅在您的开发机器(或另一个目录)中进行升级。
对您的项目进行良好的测试覆盖非常重要。如果没有测试,您将无法知道升级何时会破坏您的应用程序。我谦恭地提出了以下路线:
- 运行
rake test
(只是为了确保一切工作) - 运行
bundle update
- 运行
rake test
如果测试通过,提交更改在Gemfile.lock
。如果测试未通过,并且您想锁定给定的宝石,则然后在Gemfile中指定版本。
您可以在bundler文档中阅读install --deployment和deploying。
1
在特定版本中“冻结”宝石非常重要,如果您正在为生产准备东西,这是必须的。宝石,图书馆和应用程序会随着时间的推移而发展 - 为了不断发展,有时需要更改Gem API,并且这可以消除与以前版本的向后兼容性。
关于“冻结”Rails版本(以前我们称之为“指定Gem版本”的几个古老而优秀的文章),如DHH's Freeze is cool, so freeze for goodness sake和Should I freeze my Rails application?。
为了知道要指定的版本,我建议您指定最新版本。只需gem install gemname
,然后gem list gemname
即可查看刚安装的版本。
相关问题
- 1. 如何使用Ruby on Rails构建测试版应用程序?
- 2. 如何为Ruby应用程序设置指定的gem版本?
- 3. 在rails应用程序中启动Ruby Gem版本控制
- 4. 指定创建新应用程序时使用的rails版本
- 5. Ruby on Rails应用程序
- 6. 如何在Ruby on Rails应用程序中配置GEM
- 7. 使用现有的Mysql构建Ruby on Rails应用程序db
- 8. 使用Ruby on Rails构建webRTC应用程序后端
- 9. Ruby on Rails acts_as_votable gem
- 10. Ruby on Rails CanCan Gem
- 11. ruby-on-rails devise gem
- 12. Ruby On Rails - Twitter Gem
- 13. 管理许多不同版本的Ruby on Rails应用程序
- 14. Ruby on Rails的性能指标gem
- 15. 如何从Ruby on Rails应用程序中删除gem?
- 16. 如何构建Ruby on Rails应用程序?
- 17. Subversion gem跟踪Ruby on Rails应用程序的历史记录应用程序
- 18. Ruby on Rails - Normalize-rails gem
- 19. 如何在Ruby on Rails应用程序
- 20. Heroku Ruby on Rails存在应用程序
- 21. Payfort在Ruby On Rails应用程序
- 22. 在Ruby on Rails中构建简单的wiki应用程序的实用教程?
- 23. 适用于应用程序的Ruby on Rails模板(rails 2.3版本)
- 24. Ruby on Rails 5 - 稳定版本?
- 25. 如何在rails应用程序中强制使用gem版本?
- 26. Ruby on Rails SNMP gem - 设备无响应
- 27. 在Ruby on Rails中应执行rails应用程序的流程
- 28. 如何在Gem安装时指定Gem依赖版本
- 29. 在安装ruby on rails应用程序时出现错误应用程序未初始化常量Gem :: BasicSpecification(NameError)
- 30. Ruby on Rails 4:安装GEM