【问题标题】:which rails version should i use rails 6.1.3.2 or rails 6.1.4 (which is the latest one)?我应该使用哪个版本的 rails 6.1.3.2 或 rails 6.1.4(这是最新的)?
【发布时间】:2021-06-28 04:43:24
【问题描述】:

我正在从 6.1.3.2 中的 scrath 创建 rails 应用程序,但现在所有相关模块 (activesupport activerecord) 现在自动从 6.1.3.2 更新到 6.1.4。用 6.1.4 好不好?,如果没有,我怎么才能回到 6.1.3.2?

【问题讨论】:

  • 任何gem(包括rails)的版本都可以在你应用的Gemfile中指定。有关信息,请参阅the bundler docs。您可以根据需要具体或松懈地指定版本。从6.1.3.26.1.4 的跳转非常小(尤其是如果您刚刚启动一个应用程序),但如果您真的想返回,请将版本设置为~>6.1.3.2 并重新运行bundle install
  • @rmlockerd 感谢您的快速响应,但我的 gemfile 已经包含 6.1.3.2 但在 lockfile 中它是 6.1.4 这就是我问这个问题的原因
  • Gemfile 中的 rails 行到底长什么样?
  • @spickermann gem 'rails', '~> 6.1.3'
  • 如果一个版本只有数字,你可以假设它是稳定的。不稳定的版本可能如下所示:6.1.0.rc2 其中(rc2 代表候选版本 2)或 6.0.0.beta1

标签: ruby-on-rails ruby rubygems ruby-on-rails-5 ruby-on-rails-6.1


【解决方案1】:

这一行

gem 'rails', '~> 6.1.3'

在您的Gemfile 中意味着bundler 可以更新补丁级别版本,但不能更新到下一个次要版本(请阅读Semantic Versioning),这与>= 6.1.3 基本相同,但< 6.2

这通常称为悲观版本约束,因为它允许捆绑程序安装通常是错误修复的补丁级别版本。但是 bundler 无法更新到下一个可能包含 API 更改并可能破坏您的代码的次要版本。

更新次要版本,尤其是主要版本,您肯定需要稍微更改代码,建议在计划重大更新时进行良好的测试。

如果您真的想将 Rails 固定到特定版本(我不推荐),那么您可以使用

gem 'rails', '6.1.3.2'

在你的Gemfile

话虽如此:在更新可用时尽快安装更新实际上是一件好事,因为它们可以修复错误并可能提高性能。运行多个版本有很大的缺点:很难找到愿意使用旧版本的开发人员。获得帮助或查找文档更加困难。并且 gem 可能不适用于旧版本。

我的建议是:始终保持您的依赖项(不仅是 Rails)是最新的。当有新版本不适用于您的代码库时,请停止实施新功能并首先使您的代码库适应新版本。

【讨论】:

  • 请注意,次要版本可能会增加功能,但应该向后兼容。这意味着升级到下一个次要版本不应破坏您当前的代码。在实践中,并不是所有的 gem 甚至 Ruby 本身并不总是遵循这个规则。大多数情况下,升级到下一个次要版本是安全的,但在您这样做之前,请确保您已阅读发行说明。在(语义版本控制)理论中,只有主要版本才允许破坏代码。
【解决方案2】:

始终建议使用最新稳定版本的 rails 和其他 gem。正如您提到的6.1.4 是最新版本的自动取款机。所以不要害怕这种变化。无论如何,不​​时更新您的宝石是件好事。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多