使用哪个版本的rails

时间:2011-11-02 10:36:58

标签: ruby-on-rails-3 compatibility

在选择开发中使用哪种版本的rails时,最好的是什么?

我想升级到新功能的最新版本,但在很多情况下我的现有代码会被破坏的可能性很高,并且花费很多额外时间来修复它。我应该坚持使用当前版本的导轨吗?或前往升级?

任何建议或指南都会非常感激。

2 个答案:

答案 0 :(得分:2)

始终升级很有用,因为新的Gems可能不支持旧版本的Rails,并且您将从Rails获得可以减少代码的新功能。您可以一步一步地完成它,修复将在新版本的Rails中破解的时间代码。它更像是连续重构。

答案 1 :(得分:0)

我认为您必须仔细检查何时以及如何升级。以下是一些可能有助于升级过程的提示:

  • 补丁版本(例如从Rails 3.1.0 to Rails 3.1.1升级)通常都没有问题。尽可能升级,通常您不必更改任何内容。有时你必须检查是否应该升级其他Gems,阅读发行说明,他们会给出(有时)提示。
  • 次要版本(例如从Rails 3.0.9 to Rails 3.1.0升级)带有新功能和不兼容的更改。在发行说明中,您将找到已发生变化且必须事先得到证实的信息。举个例子,看看Ryan Bates的railscast "Upgrading to Rails 3.1.0"。您通常必须执行以下步骤:

    • 升级到之前的最后一个补丁版本。
    • 查看已弃用的日志消息。这些是升级后可能会破坏的。
    • 标记您当前的应用程序或分支以确保不会通过升级销毁任何内容。
    • 升级到您确定最需要的功能再次运行。
    • 合并您的更改,然后继续升级

    (已完成申请的最后几天我已从Rails 1.2升级到2.0到2.3.8升级到3.0.0升级到3.0.9,现在升级到3.1.1。)

  • 主要版本升级更加困难。您必须确保有足够的时间和资源来检查您可能遇到的所有小故障。大多数情况下,Rails团队提供的资源可以帮助您进行升级,例如Rails upgrade helper或3个railscast "Upgrading to Rails 3"

在任何情况下,您至少应该检查您使用的主要Gems(除了普通的Rails gems)是否与您要迁移到的版本兼容。这可能很棘手,但有时候,信息是可用的。

我的经验是,主要升级需要时间,如果您没有,请不要进行升级。小的升级需要一些时间,并且根据变化(Rails 3.1中的资产)带有价格标签,有时,并非所有时间都值得。补丁升级是无痛的,应该随意进行。