是否有人使用Ruby 1.9.1成功部署了Rails项目?

上周,我成功完成了所有公司应用程序从Ruby 1.8.6到Ruby 1.8.7的转换,包括本地和远程配置。 从现在开始,开发不需要确保与Ruby 1.8.6的向后兼容性。

为了好奇,我尝试针对Ruby 1.9.1运行几个项目的测试套件。 正如预期的那样,我发现了一些与编码相关的问题,但当我发现低级别的不兼容性(例如Rack :: Link已知错误)时,我感到非常震惊。 此时,将开发转移到Ruby 1.9.1的想法根本不适用。

我想知道是否有人使用Ruby 1.9.1成功部署了Rails项目。 您为Rails项目使用哪个Ruby版本? 您打算升级到更新版本吗?

Matz最近在伦敦的RubyFoo上谈到了ruby 1.9.1的采用。 很简单,ruby 1.9.1没有生产就绪,不应该用于部署。

Ruby 1.9.2将准备好生产,但在那之前你应该只使用ruby 1.9.1进行游戏和测试。

虽然很多人都使用1.9.1成功部署,但我建议坚持使用REE 1.8.7直到1.9.2。 Rails 3.0将支持1.9.2,但也很高兴与1.8.7(它不适用于1.8.6)。

Gitorious是一个非常庞大且复杂的Rails项目,拥有大量用户。 Gitorious在Ruby 1.8和Ruby 1.9上运行良好,但最大的Gitorious安装,即Gitorious.Org本身,已经在Ruby 1.9和YARV上运行了很长一段时间。 (至少从五月开始,我想。)

最好的部分当然是它不仅是开源的,而且是一个真正的开放式项目,具有开放的邮件列表,开放的bugtracker和开放式存储库 ,因此您可以确切地看到他们如何做到的以及它有多少工作。

我花了一天的时间来研究这种可行性,并且还要等一段时间。

就目前而言,你可以获得大部分工作的东西,但有一些非常可怕的变通办法,你必须采取措施让事情进展。

  1. MySql gem(版本2.8.1)以ASCII编码返回所有字符串,这意味着当您开始在视图中附加它们时会遇到各种令人讨厌的错误。 有一个解决方法,但它涉及使用补丁编译gem请参阅: 在ruby 1.9.1中编译rails中的问题
  2. 您需要使用hacks或env vars全局强制执行utf-8编码
  3. 乘客2.2.7由于Ruby tempfile中的错误而出现问题,所以你必须破解源代码: Ruby 1.9.1-p234,Passenger 2.2.5,Rails 2.3-stable封闭流在POST请求
  4. 有些gem根本不起作用。

尽管我很喜欢性能提升,但我认为目前这种情况有点过于尖锐,等到2010年中期可能是一个好主意

这里没有转换到Ruby 1.9.1。 我倾向于保守升级。 对于生产工作,我喜欢坚持尝试和测试的东西。 此外,恕我直言1.9.1很好,并确保你保持最新的依赖版本是一个好习惯。 正如你所注意到的那样,在最前沿发展可能会很痛苦。 如果你不想遇到这类问题,那么保持一个版本落后于最新版本会更安全。

这里也没有1.9.1。 尽管这让我感到恶心,但我们只是等待37signals先做。

一旦具有提交权限的人执行此操作,错误将得到更快解决。