Ruby on rails 最佳实践,向gem文件中的每个gem添加一个版本?
我应该为我的gem文件中的每个gem添加版本吗?这是最佳实践吗?只是推荐?一般来说,您不需要这样做,除非得到指示(由gem作者或由于不兼容而收到的用户反馈)。有时,您可能会使用某些gems的edge版本,因此这并不重要:Ruby on rails 最佳实践,向gem文件中的每个gem添加一个版本?,ruby-on-rails,gemfile,Ruby On Rails,Gemfile,我应该为我的gem文件中的每个gem添加版本吗?这是最佳实践吗?只是推荐?一般来说,您不需要这样做,除非得到指示(由gem作者或由于不兼容而收到的用户反馈)。有时,您可能会使用某些gems的edge版本,因此这并不重要: # Bundle edge Rails instead: gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'arel', :git => 'git://github.com/rails/are
# Bundle edge Rails instead:
gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'arel', :git => 'git://github.com/rails/arel.git'
gem "rack", :git => "git://github.com/rack/rack.git"
我认为您不应该指定每个gem的版本,因为在
Gemfile.lock
中已经指定了当前工作gem的版本
另外,如果您这样做,
bundle update
命令将毫无用处。您应该能够使用此命令更新gems。如果测试通过并且您的应用程序继续正常工作,只需提交新的Gemfile.lock
我更喜欢将所有gem锁定到生产中的特定版本。考虑到可能会有新版本破坏与其他gem的兼容性或不推荐某些api,您希望100%确保在部署应用程序时不会因为gem不一致而意外损坏应用程序。更新gems只能在开发过程中本地完成,方法是更新Gemfile条目,并根据您的其他代码和库测试每个新版本。Gemfile.lock
完全由Gemfile
中指定的规则和最后一次捆绑包更新生成,因此,无论是否指定版本,只需考虑Gemfile
。这也是我要说的。。。您不应该指定每个gem的版本,这样bundle update
也可以更新其中的一些版本。有时,需要获取源代码上可用的最新版本,因为它包含一个在编号的版本中不可用的急需修复程序。(will_paginate在某个时候遇到过)