我正在学习使用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应用程序设置指定的gem版本?
- 2. 指定创建新应用程序时使用的rails版本
- 3. 如何在Ruby on Rails应用程序中配置GEM
- 4. Ruby on Rails应用程序
- 5. ruby-on-rails devise gem
- 6. 管理许多不同版本的Ruby on Rails应用程序
- 7. Ruby on Rails的性能指标gem
- 8. 如何从Ruby on Rails应用程序中删除gem?
- 9. 如何构建Ruby on Rails应用程序?
- 10. Subversion gem跟踪Ruby on Rails应用程序的历史记录应用程序
- 11. Ruby on Rails - Normalize-rails gem
- 12. Payfort在Ruby On Rails应用程序
- 13. 在Ruby on Rails中构建简单的wiki应用程序的实用教程?
- 14. 适用于应用程序的Ruby on Rails模板(rails 2.3版本)
- 15. Ruby on Rails 5 - 稳定版本?
- 16. 如何在rails应用程序中强制使用gem版本?
- 17. 如何在Gem安装时指定Gem依赖版本
- 18. 指定ruby版本的ruby gem在哪里?
- 19. em-websocket gem with Ruby on Rails
- 20. Ruby On Rails上的MySQL Gem
- 21. Ruby on Rails的Jira API gem?
- 22. Ruby on Rails mysql2 gem troublebleshot
- 23. Ruby on rails,colorbox gem,popupwindow
- 24. Ruby on Rails表格Gem
- 25. Ruby on Rails Neo4J Keymaker Gem
- 26. Shopify应用程序 - 在Ruby on Rails上使用脚本标记应用程序
- 27. Ruby On Rails - Myspace应用程序开发
- 28. 分离Ruby on Rails应用程序
- 29. 验证Ruby on Rails应用程序
- 30. Ruby on Rails事件应用程序