我应该将Ruby 1.9.2用于我的Rails 2.3.10应用程序吗?

时间:2011-02-05 18:19:51

标签: ruby-on-rails ruby

我有一个现有的Rails 2.3.10应用程序,我正在考虑从1.8.7升级到Ruby 1.9.2。在我开始攻击试图让它工作的应用程序之前,我试图决定它是否值得付出努力。

只是想知道可能涉及多少工作,我只是在Ruby 1.9.2中运行所有规范(rspec 1.3.1)。 98%的测试都在通过,但是它们运行速度慢了3倍,并且有大量的消息,比如“Ruby 1.9还不支持Unicode规范化”。我发现了一个post about this issue,所以我知道我可以修复它,但是我担心速度和我可能遇到的其他问题。

我的另一个选择是将应用程序升级到Rails 3并在那时移至1.9.2。从长远来看,这似乎是一个更好的决定,但可能会有更多的工作。

tl; dr - 我应该立即升级到1.9.2还是等到应用程序在Rails 3上?

1 个答案:

答案 0 :(得分:3)

我建议同时执行这两项操作,但是您执行这两项操作的顺序,或者如果您同时执行这两项操作,实际上是个人偏好。如果您拥有一个覆盖良好的强大测试套件,那么这是进行转换的第一步。您将遇到的主要障碍如下:

  • 许多较新的gem版本仅支持Rails 3,因此如果您一次只执行一步,请确保您的宝石得到支持。例如,您不希望因为使用Ruby 1.9.2而宝石需要您升级的情况而陷入困境,但新版本的gem仅在Rails 3中可用。
  • Ruby 1.9.2中有一些语法更改,需要重新编译已编译的C扩展或重新安装gem。
  • 从Rails 2.3到Rails 3.0有重大的应用程序配置更改。他们需要一些时间来完成,但有很多支持。

一般来说,Ruby 1.9.2比Ruby 1.8.7更快,并且会提供一些很酷的新语法。如果你得到相反的结果,那么我会对你的代码进行基准测试,并确保实际情况就是这样,而且不仅仅是测试会导致你的套件速度下降。