我正在學習使用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