【问题标题】:Is it better practice to specify a Rails version or branch in a Gemfile?在 Gemfile 中指定 Rails 版本或分支是否更好?
【发布时间】:2017-01-14 21:18:36
【问题描述】:
我正在使用
gem 'rails', '~> 5.0.0'
在我的 Gemfile 中。
我刚刚学到了另一种指定 Rails 分支的方法,即:
gem 'rails', github: "rails/rails", branch: '5-0-stable'
在 Gemfile 中包含 Rails 是否有最佳实践?为什么要使用一种方式而不是另一种方式?
【问题讨论】:
标签:
ruby-on-rails
rubygems
gemfile
【解决方案1】:
gem 'rails', '~> 5.0.0'
使用所谓的悲观版本控制。所谓的squiggly arrow 意味着它将使用5.0.X 中的任何新的次要版本,这意味着您仍然会获得错误修复,但可以肯定该库不会突然改变您。
~> 5.0.0 等价于>= 5.0.0 <5.1。
如果您想处于最前沿,或者如果最新版本中存在重大问题或不兼容但在主版本中已修复,则将 gem 直接链接到 github 存储库确实是一个好主意。
通常情况下,您想使用 gem A,但最新版本的 gem B 与 A 不兼容,这通常发生在主要版本发布后。
将你所有的 gem 直接链接到它们的主分支会非常考验你的理智。
【解决方案2】:
据我所知,没有最佳实践。
rails 的稳定分支不断变化,它只是试图没有错误。如果您知道您希望您的应用程序以下一版本的 Rails 为目标,那么使用这样的分支可能是一个好主意。
现在我想,来自 rubygems.org 的 gem 版本可能是“最佳实践”。你可以保证 Rails 代码库不会在你手下发生变化。
如果只是为了学习艰难的方式,尝试几周的 github 方法也无妨!
祝你好运