需要帮助来升级我的rails版本

时间:2010-02-11 11:45:14

标签: ruby-on-rails

我是Ruby on Rails的新手。我需要将我的rails版本从1.2.3升级到2.3.5。我正在使用mysql数据库在windows环境中工作。请你帮我完成升级rails版本所涉及的步骤。

谢谢

1 个答案:

答案 0 :(得分:3)

正如您所说,要升级当前应用程序的rails版本,您必须执行以下几个步骤:

在此之前,请检查以下设置:

  1. 检查environment.rb设置
  2. 将.rhtml文件迁移到html.erb
  3. 检查可能需要进行的任何routes.rb更改,因为ROR 2.3.4已经简化了指定路由
  4. 确保手头有一个好的SCM系统 例如:git,svn,(或)甚至cvs。这样就可以捕获小的增量变化。

  5. 应检查插件的兼容性

  6. 例如,更新所有form_tag条目 <%= form_tag :action=> "search" %> becomes <% form_tag :action=>"search" do %>

  7. 同样明智的改变&lt;%= end_form_tag%&gt;至&lt;%end%&gt;。

  8. 完成上述设置后,请按照以下说明进行操作:

    1. 首先,我们必须通过以下命令升级rails

      $ sudo gem install rails

    2. 由于rails:freeze:1.2.3中的gems与RubyGems 1.3.1(GemRunner问题)不兼容,并且由于它不了解activeresource,我们将使用新的Rails 2.3.4进行检查消息来源:

      $ cd~ / src $ rails rails23-app $ cd rails23-app $ rake rails:freeze:gems

    3. 为升级创建分支

      $ cd~ / src / app_to_upgrade $ git checkout -b rails23#假设你的应用程序在Git中

    4. 升级Rails源

      $ rm -rf vendor / rails $ mv~ / src / rails23-app / vendor / rails vendor

    5. 升级config / boot.rb和public / javascripts / *。将application.rb重命名为application_controller.rb

      $ rake rails:update

    6. 获取config / initializers / *文件。确保会话设置适合您的应用。

      $ cp -r~ / src / rails23-app / config / initializers config

    7. 确保您的config / environment.rb和config / environments / *文件与Rails 2.3兼容。通过将您的文件版本与rails23-app

    8. 中的版本进行比较来完成此操作

      除非您的数据库日期时间列是UTC

      ,否则不要使用config.time_zone ='UTC'

      您希望通过将部分分解为config / initializers / *文件来使您的environment.rb文件相当小。

      ActionMailer::Base.server_settings已重命名为ActionMailer::Base.smtp_settings

      1. 删除/升级/修补您的应用可能不兼容Rails 2.3的所有插件。有些东西已被移出Rails并进入插件,然后你必须安装这些插件。对于分页,我建议使用will_paginate(http://github.com/mislav/will_paginate/tree/master

      2. 查看您对Rails所做的任何修补程序。

      3. 使您的测试Rails 2.3兼容:

      4. 在Git中提交您的分支,将其合并到master,然后进行部署。

      5. 现在你可以试试。