我是铁道新手并且有一个相当普遍的问题:
在我的应用中指定宝石的版本是一种好习惯吗?或者,我应该省略版本号并让它定期获取最新更新
答案 0 :(得分:1)
Gemfile.lock文件的目的是跟踪gem版本。使用Gemfile.lock的运行bundle install仅使用其中列出的依赖项进行安装;它不会重新解析Gemfile。要更新依赖项/更新gem版本,您必须显式执行更新,这将更新您的Gemfile.lock文件。
如果没有Gemfile.lock,将代码部署到生产将是一个主要问题,因为正如您所提到的,依赖关系和gem版本可能会发生变化。
简而言之,正如rubygems.org建议的那样,使用悲观版本约束运算符(〜>)通常应该是安全的。确保在进行捆绑更新后重新运行测试,以确保没有任何中断。
Yehuda Katz有一篇nice文章,其中有关于Gemfile.lock的更多信息。