我应该在我的Rails 2.3.10应用程序中使用Ruby 1.9.2吗?

4
我有一个现有的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规范化”。我在这个问题的帖子中找到了解决方法,所以我知道我可以解决它,但我担心会遇到速度和其他问题。
我的另一个选择是将应用程序升级到Rails 3并在那时移动到1.9.2。从长远来看,这似乎是一个更好的决定,但可能需要更多的工作。
简而言之-现在是否应该升级到1.9.2,还是等到应用程序在Rails 3上?
1个回答

3
我建议两个步骤同时进行,但你可以按个人喜好自行决定顺序或同时进行。如果你拥有一个良好覆盖率的强大测试套件,这是实现转换的绝佳第一步。以下是你可能会遇到的主要阻碍:
  • 许多新版本的gem只支持Rails 3,所以如果你只做其中一个步骤,请确保你的gems支持该版本。例如,你不想陷入这样的情况:某个gem需要你升级,因为你使用的是Ruby 1.9.2,但是该gem的新版本仅在Rails 3中可用。
  • Ruby 1.9.2中存在一些语法变化,编译的C扩展需要重新编译或重新安装gems。
  • 从Rails 2.3到Rails 3.0存在重大应用程序配置更改,需要一些时间来完成,但有很多支持。

一般而言,Ruby 1.9.2比Ruby 1.8.7更快,并提供了一些新的酷炫语法。如果你得到相反的结果,那么我建议你对代码进行基准测试,确保这确实是事实,并且不是失败的测试导致测试套件变慢。


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