2011-09-02 137 views
9

我有一个Rails 3.0应用程序(技术上是3.0.7),我想升级到Rails 3.1以利用新的资产管道和其他奇特的新功能。做这件事的最佳方法是什么?我应该使用rails new发生器,然后将我的旧应用程序中的所有内容复制到新的应用程序中?版本控制怎么样?我已经有了使用Git的旧应用程序。如何将Rails 3.0应用程序升级到Rails 3.1?

回答

10

刚刚升级我的应用程序从3.0.9到3.1.0的一个,这里是我的方法,你可能会因人而异:

编辑Gemfile中,变更轨道宝石版本

gem 'rails', '3.1.0' 

还增加了新的宝石在3.1.0

group :assets do 
    gem 'sass-rails', "~> 3.1.0" 
    gem 'coffee-rails', "~> 3.1.0" 
    gem 'uglifier' 
end 
gem 'jquery-rails' 

运行引进bundle update rails

然后运行rake rails:update并解决冲突。

将你的CSS/JavaScript的/图像等来app/assets文件夹,确保有一个application.jsapplication.css文件(你可能想看看这两个从新建项目3.1.0)

包括CSS在您的布局文件/ JavaScript的链接像这样

<%= stylesheet_link_tag "application" %> 
<%= javascript_include_tag "application" %> 
+2

它可能会更新RVM一个好主意,一些很酷的耙子任务最新版本:'rvm get latest',或者如果RVM太旧,请再次运行安装脚本,然后更新RubyGems:'gem update --system',然后更新bundler:'gem install bundler' – Andrew

+1

我有一些冲突,当我运行'bundle update rails',所以我不得不运行'bundle update'而不是 – Andrew

+1

就assets目录而言,我刚刚创建了一个虚拟3.1应用程序,并将资产目录结构复制到我的旧应用程序 – Andrew

1

在你的Git仓库中创建一个新的分支。

看看Rails 3.1 Example Apps如果你使用Devise,RSpec或黄瓜,因为它们会给你一个很好的工作参考实现。如果没有,只需使用rails new来创建一个简单的Rails 3.1应用程序。

然后使用文件比较工具(例如FileMerge或Mac OS X上的更改)来确定Rails 3.1代码与3.0应用程序的不同之处。

0

拷贝宝石宝石的文件替换旧的一次 宝石“轨道”,“3.1。0'

group :assets do 
    gem 'sass-rails', "~> 3.1.0" 
    gem 'coffee-rails', "~> 3.1.0" 
    gem 'uglifier' 
end 

所有你需要做的就是运行rake rails:update

也可以运行rake -T看到你需要