我能否使用Rails 3.2.3更新至Ruby 2.1.2?

23

首先,我认为这不是一个被禁止在StackOverflow上提问的问题,因为它是关于环境的精确而客观的问题。但是如果它是被禁止的,请告诉我。

目前我正在开发一个特定的项目,使用Ruby 1.9.3Rails 3.2.3,由于项目依赖性,我们暂时无法升级到Rails 4

我的问题是:

使用Rails 3.2.3,我们可以升级到更新的Ruby版本吗?如果可以,应该选择哪个版本:Ruby 2.0Ruby 2.1.2还是其他版本?


另外,我搜索了Google和StackOverflow,没有找到类似的问题。

谢谢!


我正在查询你的答案,但首先请注意Rails 3.2的最新版本为3.2.19。(不支持Rails 3.2.3。) - dcorking
这真的很奇怪。从我的终端中截取的屏幕截图:http://s16.postimg.org/t5bv1yng5/Screenshot_from_2014_08_06_11_56_17.png - Paladini
我认为你的问题对于 Stack Overflow 来说是“过于局限”(一年左右后就会过时),所以你可能需要编辑它使其更加通用。也许这个问题可以这样表述:“如何选择与 gem(例如 Rails)兼容的 Ruby 版本?” - dcorking
这个问题是在2012年提出的。然而,答案开始变得过时了:https://dev59.com/KWox5IYBdhLWcg3wnllI - dcorking
我在2012年的问题https://dev59.com/KWox5IYBdhLWcg3wnllI#25165149上发布了一个更一般性的答案。 - dcorking
2个回答

28
支持 Ruby 2.0 的第一个正式版本是 Rails 3.2.13(请参见 rails 博客中的公告)。我部署了几个运行 3.2.15-3.2.17 和 Ruby 2.0(它们后来被升级到了 Rails 4)的应用程序,没有任何我记得起的问题。最近发布的 3.2.22 支持 Ruby 2.2。

只是一个简短的问题:为什么Rails 3.2.13〜3.2.19在“3.2.3”之后发布(我的Rails版本)? - Paladini
3
为什么?除了因为19 > 3之外还有什么原因吗? - Frederick Cheung
哇,很有道理,非常Rails,非常Ruby。我以为它想表达的意思是像3.2.1.3或3.2.1.9这样的东西。:P - Paladini
1
版本号遵循主版本.次版本.修订号的模式,但我不怪你感到困惑。首先是一个标准链接,然后是一个关于现实生活的维基百科文章。http://semver.org/spec/v2.0.0.html https://en.wikipedia.org/wiki/Software_versioning - dcorking
所有的 Ruby 2.2.x 补丁版本都是安全的,包括 Ruby 2.2.3 吗? - Kelsey Hannan
1
我相信2.2.x版本不应该比2.2.0版本引入任何退化。 - Frederick Cheung

2
根据Travis配置,Rails 3.2.3仅测试了Ruby 1.8.7、1.9.2和1.9.3,因此使用较新版本的Ruby似乎不是一个好主意(但您始终可以自行测试)。然而,Rails 3.2.3存在一些已知的安全漏洞,在3.2.19中已经进行了修补。 另一方面,Rails 3.2.19的配置表明开发人员希望它能够与Ruby 2.0.0兼容。如果您需要新的Ruby功能并且不能有效地将其回溯,则您的项目可能会从投资一些精力来升级从Rails 3.2.3到3.2.19,并测试该应用程序与Ruby 2.0的组合中受益。请注意,类似问题的唯一最近答案警告称这种组合存在“奇怪的问题”。还要考虑到最新的Rails 3.2发行说明没有提到Ruby 2.0。

我曾经在2.0.0上运行一个Rails 3.2应用程序。我认为直到3.2.13左右它才是2.0.0安全的。 - Frederick Cheung
@FrederickCheung请将您的评论发布为答案。它比我的更有见地。 - dcorking
完美的答案 :) 我是通过谷歌引导到这里的,试图找出3.2.22是否支持Ruby 2.3,并查看https://github.com/rails/rails/blob/v3.2.22.2/.travis.yml,我很快就自己发现2.2是最好的选择。 - fxtentacle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接