我是Ruby on Rails的新手。我需要将我的rails版本从1.2.3升级到2.3.5。我正在使用mysql数据库在windows环境中工作。请你帮我完成升级rails版本所涉及的步骤。
谢谢
答案 0 :(得分:3)
正如您所说,要升级当前应用程序的rails版本,您必须执行以下几个步骤:
在此之前,请检查以下设置:
确保手头有一个好的SCM系统 例如:git,svn,(或)甚至cvs。这样就可以捕获小的增量变化。
应检查插件的兼容性
例如,更新所有form_tag条目
<%= form_tag :action=> "search" %> becomes <% form_tag :action=>"search" do %>
同样明智的改变&lt;%= end_form_tag%&gt;至&lt;%end%&gt;。
完成上述设置后,请按照以下说明进行操作:
首先,我们必须通过以下命令升级rails
$ sudo gem install rails
由于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
为升级创建分支
$ cd~ / src / app_to_upgrade $ git checkout -b rails23#假设你的应用程序在Git中
升级Rails源
$ rm -rf vendor / rails $ mv~ / src / rails23-app / vendor / rails vendor
升级config / boot.rb和public / javascripts / *。将application.rb重命名为application_controller.rb
$ rake rails:update
获取config / initializers / *文件。确保会话设置适合您的应用。
$ cp -r~ / src / rails23-app / config / initializers config
确保您的config / environment.rb和config / environments / *文件与Rails 2.3兼容。通过将您的文件版本与rails23-app
除非您的数据库日期时间列是UTC
,否则不要使用config.time_zone ='UTC'您希望通过将部分分解为config / initializers / *文件来使您的environment.rb文件相当小。
ActionMailer::Base.server_settings
已重命名为ActionMailer::Base.smtp_settings
删除/升级/修补您的应用可能不兼容Rails 2.3的所有插件。有些东西已被移出Rails并进入插件,然后你必须安装这些插件。对于分页,我建议使用will_paginate(http://github.com/mislav/will_paginate/tree/master)
查看您对Rails所做的任何修补程序。
使您的测试Rails 2.3兼容:
在Git中提交您的分支,将其合并到master,然后进行部署。
现在你可以试试。