Upgrading from Rails 3 to Rails 3.1
Ruby on-RailsRubyRuby on-Rails-3Ruby on-Rails-3.1Ruby on-Rails Problem Overview
How do you upgrade from Rails 3 to Rails 3.1 beta?
Ruby on-Rails Solutions
Solution 1 - Ruby on-Rails
This is what worked for me when updating an existing rails 3.0.8 project. Your mileage may vary...
Update the rails version specified in my Gemfile to use the latest release candidate:
gem 'rails', '3.1.0.rc4’
Update the bundle:
bundle update
Then update the project with the rake command:
rake rails:update
After cherry picking though the change conflicts I ran all my tests and they passed (yay!). I restarted the server and everything seems good so far.
However, this is not using the new asset pipeline yet. By that I mean the javascript and css (or sass) files are still being handled in the pre-pipeline manner. As I understand it, this is a perfectly viable option. But of course, I want the new goodness, so I believe the next steps are to include and additional gems (e.g. coffeescript, sass, uglifier, etc) and then to migrate the old files to the app/assets directory.
I found some details about that are here:
http://blog.nodeta.com/2011/06/14/rails-3-1-asset-pipeline-in-the-real-world/
Hope that was helpful.
Solution 2 - Ruby on-Rails
I just upgraded from 3.0 to 3.1 by changing my Gemfile to:
gem 'rails', '3.1.0.rc1'
gem 'sqlite3'
gem 'sass'
gem 'coffee-script'
gem 'uglifier'
I also commented out the following line below in config/environments/development.rb
# config.action_view.debug_rjs = true
Finally, make sure you enable the asset pipeline in config/application.rb
config.assets.enabled = true
I'm not sure if you've already read the release notes http://weblog.rubyonrails.org/2011/4/21/jquery-new-default
Solution 3 - Ruby on-Rails
watch it :)
Solution 4 - Ruby on-Rails
Upgrading Rails
Update: be cautious of using your system rake, as rake has been upgraded.
bundle exec rake
ensures you'll be using the correct rake for a given rails project (source)
I suggest beginning with a fresh app, then copying in your specific app information while shifting your resources into the new asset/sprockets format.
> An example
>
> While converting an older rails 2.3.4
> app to 3.0 I crashed and burned while
> changing one file at a time over
> within the project. Needless to say
> that was a flawed strategy, but I did
> learn a little along the way. I ended
> up skipping 3.0 and moving to 3.1beta1
> with a fresh app, and copied my app
> and public folders in after getting
> the migrations right. That move had a
> couple of outstanding issues, the most
> important being that I didn’t use
> rails edge for creating the new app
> (thanks for the tip RubyInside).
>
> First snag the latest rails into an
> easy to reference location:
>
> cd ~/goodtimes
>
> git clone
> https://github.com/rails/rails.git
>
> My path includes a ~/Desktop/Dropbox/
> so my code is available everywhere.
>
> Then refer to that rails exec for
> building a new app:
>
> ~/goodtimes/rails/bin/rails new bacon --edge
Depending on the complexity of your database, you'll either want to create new migrations using the change syntax or leave them be:
> class CreatePosts < ActiveRecord::Migration
> def change
> create_table :posts do |t|
> t.string :title
> t.text :body
>
> t.timestamps
> end
> end
> end
I had an issue deploying to Heroku, but theRubyRacer gem helped square that away. Here's an example of a simple Gem file:
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
I suspect there will be community utilities to help you automate migration from older versions of Rails to the --edge.
References:
Solution 5 - Ruby on-Rails
I recommend updating your Gemfile to use edge rails. For example:
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'
You can read more here http://pogodan.com/blog/2011/04/24/easy-edge-rails.
Solution 6 - Ruby on-Rails
http://railscasts.com/episodes/282-upgrading-to-rails-3-1
this railscast might help !
Solution 7 - Ruby on-Rails
If i understood your question correctly this is how:
gem install rails --pre
Solution 8 - Ruby on-Rails
This is a pretty good guide which goes into some detail about installing Rails 3.1:
Solution 9 - Ruby on-Rails
Upgrading a rails 3.0.7 and 3.0.9 app using this guide worked for me
http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-rails-application-to-version-3-1-0.html
You can skip steps 3 and higher if you want--it will still work, although you won't be taking advantage of everything new in rails 3.1.