ruby-on-rails - ruby 和 ruby​​ on rails 版本的命名依据是什么

标签 ruby-on-rails ruby

我很好奇 ruby​​ 和 ror 版本的命名依据是什么。比如ruby 1.9.3之后,它的版本是2.0,而不是1.10或者1.9.4,rails中也是如此。必须有一些惯例或规则。

最佳答案

与许多其他项目一样,Ruby 和 Rails 遵循 Semantic Versioning .

不过,他们并不总是一字不差。例如,Ruby 1.9 与 Ruby 1.8 向后不兼容,而 Ruby 2.0 主要与 Ruby 1.9 兼容,因此实际上 Ruby 1.9 应该是 Ruby 2.0,而 Ruby 2.0 应该是 Ruby 2.1。

在这种特殊情况下,有历史上的“营销”原因:术语“Ruby 2.0”已经在 Ruby 社区中使用了 10 多年,用特定的、经常谈论的来标记特定的“神话”版本——关于 scoped monkey patching 和 traits 等功能。发布一个没有这些功能的版本但仍称其为“2.0”会比违反语义版本控制规则令人困惑。 (实际上,Ruby 2.0 在没有 traits 和 it has led to confusion 的情况下发布的!)

OTOH,不可能将其称为“1.10”,因为 RUBY_VERSION 常量将版本作为 String 返回,并且很多工具(错误地)做了一些事情喜欢

if RUBY_VERSION <= '1.8'
  def foo
  end
end

这会中断,因为 String '1.10' 实际上小于 String '1.8'

因此,决定落户1.9。

关于ruby-on-rails - ruby 和 ruby​​ on rails 版本的命名依据是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16080423/

相关文章:

ruby-on-rails - 无法使用 Docker Compose 运行 Rails 控制台

ruby-on-rails - 在液滴中访问 rails image_tag 助手

ruby-on-rails - RailsTutorial.org 第 1 章 - 第一个服务器运行时出错:Rack::Lint::LintError at/env 缺少必需的 key SERVER_NAME

ruby - 如何部署 Rails 应用程序并在用户目录中安装 Ruby Native Extension

ruby - 线程池中的死锁

ruby - 在 Windows 上安装 rspec (gem install rspec) 时出错

ruby-on-rails - capybara 在功能规范期间找不到数据库记录

ruby-on-rails - rails jbuilder - 只是一个字符串数组

ruby-on-rails - 哈希删除除特定键之外的所有内容

ruby-on-rails - rails 中的更新路线对 after_action react 不佳?