如何从Rails 3升级到Rails 3.1 beta?
答案 0 :(得分:54)
在更新现有的rails 3.0.8项目时,这对我有用。你的里程可能会有所不同......
更新我的Gemfile中指定的rails版本以使用最新的候选版本:
gem 'rails', '3.1.0.rc4’
更新捆绑包:
bundle update
然后使用rake命令更新项目:
rake rails:update
在樱桃采摘后,虽然变化发生了冲突但我跑了所有的测试并且他们通过了(耶!)。我重新启动了服务器,到目前为止一切似乎都很好。
但是,这还没有使用新的资产管道。我的意思是javascript和css(或sass)文件仍然以预管道方式处理。据我了解,这是一个非常可行的选择。但当然,我想要新的优点,所以我相信接下来的步骤是包含和其他宝石(例如coffeescript,sass,uglifier等),然后将旧文件迁移到app / assets目录。
我发现了一些关于这方面的细节:
http://blog.nodeta.com/2011/06/14/rails-3-1-asset-pipeline-in-the-real-world/
希望这很有用。
答案 1 :(得分:28)
我刚刚将Gemfile更改为:
,从3.0升级到3.1gem 'rails', '3.1.0.rc1'
gem 'sqlite3'
gem 'sass'
gem 'coffee-script'
gem 'uglifier'
我还在config / environments / development.rb
中注释了以下行# config.action_view.debug_rjs = true
最后,确保在config / application.rb
中启用资产管道config.assets.enabled = true
我不确定您是否已阅读发行说明http://weblog.rubyonrails.org/2011/4/21/jquery-new-default
答案 2 :(得分:24)
注意:)
答案 3 :(得分:13)
更新:请谨慎使用系统rake,因为rake已升级。
bundle exec rake
确保您为给定的rails项目(source)
使用正确的rake我建议从一个全新的应用程序开始,然后复制您的特定应用程序信息,同时将资源转换为新的资产/链接器格式。
一个例子
转换旧的导轨2.3.4 应用程序到3.0我崩溃和烧毁的同时 一次更改一个文件 在项目内。不用说 这是一个有缺陷的策略,但我做到了 沿途学习一点。我结束了 跳过3.0并移动到3.1beta1 使用全新的应用程序,并复制我的应用程序 和获取后的公共文件夹 移民权利。这一举动有一个 几个突出的问题,最多 重要的是我没有使用 rails edge用于创建新应用程序 (感谢RubyInside的提示)。
首先抓住最新的铁轨 易于参考的位置:
cd ~/goodtimes
git clone
https://github.com/rails/rails.git
我的路径包含〜/ Desktop / Dropbox / 所以我的代码随处可用。
然后参考rails exec for 建立一个新的应用程序:
~/goodtimes/rails/bin/rails new bacon --edge
根据数据库的复杂程度,您可能希望使用更改语法创建新的迁移,或者将它们保留为:
class CreatePosts < ActiveRecord::Migration def change create_table :posts do |t| t.string :title t.text :body t.timestamps end end end
我有一个问题部署到Heroku,但是RadyRacer宝石帮助解决了这个问题。这是一个简单的Gem文件的例子:
source 'http://rubygems.org'
gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
# Asset template engines
gem 'sass'
gem 'coffee-script'
gem 'uglifier'
gem 'jquery-rails'
gem 'pg'
gem 'therubyracer-heroku', '0.8.1.pre3', :platforms => :ruby
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'
group :test do
# Pretty printed test output
gem 'turn', :require => false
end
我怀疑社区实用程序会帮助您自动从旧版本的Rails迁移到--edge。
参考文献:
答案 4 :(得分:3)
我建议您更新Gemfile以使用edge rails。例如:
gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'arel', :git => 'git://github.com/rails/arel.git'
gem 'rack', :git => 'git://github.com/rack/rack.git'
gem 'sprockets', :git => 'git://github.com/sstephenson/sprockets.git'
gem 'sqlite3'
# Asset template engines
gem 'sass', '~> 3.1.0.alpha'
gem 'coffee-script'
gem 'uglifier'
您可以在此处阅读更多内容http://pogodan.com/blog/2011/04/24/easy-edge-rails。
答案 5 :(得分:2)
http://railscasts.com/episodes/282-upgrading-to-rails-3-1
这个railscast可能有所帮助!
答案 6 :(得分:1)
如果我理解你的问题,那就是:
gem install rails --pre
答案 7 :(得分:1)
这是一个非常好的指南,详细介绍了如何安装Rails 3.1:
答案 8 :(得分:0)
使用本指南升级rails 3.0.7和3.0.9 app对我有用
http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-rails-application-to-version-3-1-0.html
如果你愿意,你可以跳过第3步和更高的步骤 - 虽然你不会利用rails 3.1中的所有新功能,但它仍然可以使用。