我有一个旧的2.1.1 Ruby on Rails应用程序,系统升级为使用Ruby 1.8.7。它最初使用1.8.5左右。
出于性能原因,我想将它升级到Ruby 1.9.x,也可能将它升级到更新的Ruby on Rails。
我找不到任何简单的Ruby版本和Ruby on Rails版本之间的兼容性图表。
2.1.1将与Ruby 1.9.x一起使用吗?如果没有,我需要在多长时间内升级它,以及我可能会遇到什么样的问题?我的应用程序对数据库层做了很复杂的事情,但其余部分相当简单。
答案 0 :(得分:45)
对于版本< 3.2: http://www.devalot.com/articles/2012/03/ror-compatibility
对于版本> = 4.0:
Rails 3.2
我尝试退出这些建议(主要在Ruby 2.0和2.1上运行Rails 3.0),我遇到了多个奇怪的问题。
答案 1 :(得分:34)
这是一个古老的问题,但是从3.0开始,Rails的稳定分支使用travis-ci进行自动化测试,并且Rails已针对红宝石版本进行了测试,这很好地表明了它应该在该版本的Ruby上运行。
通过Rails分支的经过测试的红宝石版本列表为:
Rails 3.0
Rails 3.1
Rails 3.2
Rails 4.0
Rails 4.1
Rails 4.2
Rails 5.0
Rails 5.1
Rails 5.2
Rails 6.0
(来自https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/)
答案 2 :(得分:13)
很难在发行说明中找到它。谷歌搜索了一段时间后,我只能在http://www.devalot.com/articles/2012/03/ror-compatibility
找到它
答案 3 :(得分:11)
升级Ruby on Rails的Rails指南中有一节Ruby versions。这可能是Rails核心团队控制的最佳来源。
截至2016年8月,Rails指南中写道:
1.3 Ruby版本
Rails在发布时通常会与最新发布的Ruby版本保持接近:
- Rails 5需要Ruby 2.2.2或更新版本。
- Rails 4更喜欢Ruby 2.0,需要1.9.3或更新版本。
- Rails 3.2.x是支持Ruby 1.8.7的最后一个分支。
- Rails 3及以上版本需要Ruby 1.8.7或更高版本。对所有以前的Ruby版本的支持已正式删除。你应该尽早升级。
答案 4 :(得分:7)
From Rails 2.2 release note:(不完全是你提出的那个)
除了线程安全之外,还有很多工作要做Rails 与JRuby和即将推出的Ruby 1.9配合良好。 Ruby 1.9是一个 移动目标,边缘Rails边缘Ruby仍然是一个命中或未命中 命题,但Rails已准备好向Ruby 1.9过渡 当后者被释放时。
我认为Rails 2.1.1与Ruby 1.9不兼容,你可以在这样的环境中独立运行。当然,如果你的测试服是全面的,你可以试一试。此外,您必须检查项目中使用的所有其他宝石,这可能是一个真正的麻烦。
如果您选择坚持使用此Rails版本,我将不会迁移到1.9.x.正如您所提到的,您希望升级它,您应该仔细阅读Rails 3.0 release notes中提到的弃用并调整您的代码。汇总列表可在Rails 3 deprecated methods and APIs
中找到答案 5 :(得分:4)
一般来说,有两个地方可以检查Ruby平台是否适合您首选的Rails版本。
guides/source
目录中的发行说明(也在网络上Rails Guides和Github)您可能还会发现查看版本的.travis.yml
文件很有用。那里的rvm
条目表明开发人员可能会对其进行自动化测试的Ruby版本。
当然,在他们自己的测试中使用他们的建议。
答案 6 :(得分:3)
Rails Guides在" Rails入门"下有信息。我从每个版本的指南中提取信息:
Rails 3.2 - The Ruby language version 1.8.7 or higher
Rails 4.0 - The Ruby language version 1.9.3 or newer
Rails 4.1 - The Ruby language version 1.9.3 or newer
Rails 4.2 - The Ruby language version 1.9.3 or newer
据我所知,这与最低版本的主要来源非常接近。有关推荐版本,请参阅gamov's answer。
答案 7 :(得分:1)
the first answer here内容丰富,但是我对rails-4.2
与ruby-2.4.5
的兼容性发表了评论,因为显示了一个here问题,该问题使{{ 1}}仅与rails-2.4.8
兼容,任何其他版本的rails-2.4均不起作用。
答案 8 :(得分:0)
所有这些页面都落后于当前状态。官方文档上的文档含糊不清的“ Ruby语言版本...或更高版本”。如果您想知道您想知道的Ruby版本,请根据Rails社区使用的Travis CI进行测试。在这里,您可以看到哪个分支再次测试了哪个Ruby版本。
答案 9 :(得分:0)
我相信这种回归表明Rails 4.1不能与Ruby 2.3一起使用: https://bugs.ruby-lang.org/issues/12353