Rails:在我的应用程序中指定 gem 的版本是一种好习惯吗?

Rails: Is it good practice to specify the versions for the gems in my app?

我是 rails 的新手,有一个相当笼统的问题:

在我的应用程序中指定 gem 的版本是一种好习惯吗?或者,我是否应该省略版本号并让它定期获取最新更新

Gemfile.lock 文件的目的是跟踪 gem versions.Running 捆绑包安装 Gemfile.lock 仅使用其中列出的依赖项进行安装;它不会重新解析 Gemfile。要更新依赖项/更新 gem 版本,您必须明确执行捆绑更新,这将更新您的 Gemfile.lock 文件。

如果没有 Gemfile.lock,将代码部署到生产环境将是一个主要问题,因为正如您提到的,依赖项和 gem 版本可能会发生变化。

简而言之,按照 rubygems.org 的建议,使用悲观版本约束运算符 (~>) 通常应该是安全的。请务必在执行捆绑包更新后重新运行 测试,以确保没有任何问题。

Yehuda Katz 的一篇 nice 文章提供了关于 Gemfile.lock 的更多信息。