Mise à niveau de Rails 3 à Rails 3.1

Comment passez-vous de Rails 3 à Rails 3.1 bêta?

C’est ce qui a fonctionné pour moi lors de la mise à jour d’un projet rails 3.0.8 existant. Votre kilométrage peut varier…

Mettez à jour la version des rails spécifiée dans mon Gemfile pour utiliser la dernière version candidate:

 gem 'rails', '3.1.0.rc4' 

Mettre à jour le bundle:

 bundle update 

Ensuite, mettez à jour le projet avec la commande rake:

 rake rails:update 

Après avoir choisi cerise sur le gâteau malgré les conflits, j’ai couru tous mes tests et ils sont passés (yay!). J’ai redémarré le serveur et tout semble bien aller jusqu’à présent.

Cependant, cela n’utilise pas encore le nouveau pipeline d’actifs. Je veux dire par là que les fichiers javascript et css (ou sass) sont toujours traités de la manière pré-pipeline. Si je comprends bien, c’est une option parfaitement viable. Mais bien sûr, je veux la nouvelle bonté, donc je pense que les prochaines étapes consistent à inclure et à append des gems (par exemple, coffeescript, sass, uglifier, etc.) puis à migrer les anciens fichiers vers le répertoire app / assets.

J’ai trouvé quelques détails à ce sujet ici:

http://blog.nodeta.com/2011/06/14/rails-3-1-asset-pipeline-in-the-real-world/

J’espère que c’était utile.

Je viens de passer de la version 3.0 à la version 3.1 en changeant mon fichier Gemfile pour:

 gem 'rails', '3.1.0.rc1' gem 'sqlite3' gem 'sass' gem 'coffee-script' gem 'uglifier' 

J’ai également commenté la ligne ci-dessous dans config / environnements / development.rb

 # config.action_view.debug_rjs = true 

Enfin, assurez-vous d’activer le pipeline d’actifs dans config / application.rb

 config.assets.enabled = true 

Je ne sais pas si vous avez déjà lu les notes de version http://weblog.rubyonrails.org/2011/4/21/jquery-new-default

Mise à niveau vers Rails 3.1

Regarde ça 🙂

Mise à niveau des rails

Mise à jour : soyez prudent lorsque vous utilisez votre rake système, car le rake a été mis à jour.

 bundle exec rake 

s’assure que vous utiliserez le bon râteau pour un projet de rails donné ( source )


Je suggère de commencer par une nouvelle application, puis de copier les informations de votre application spécifique tout en déplaçant vos ressources vers le nouveau format Asset / Sprockets.

Un exemple

Lors de la conversion d’une ancienne application rails 2.3.4 en 3.0, je me suis écrasé et j’ai brûlé en changeant un fichier à la fois dans le projet. Inutile de dire que c’était une stratégie défectueuse, mais j’ai appris un peu en cours de route. J’ai fini par ignorer la version 3.0 et passer à la version 3.1beta1 avec une nouvelle application, et j’ai copié mon application et mes dossiers publics après avoir effectué les migrations. Ce mouvement a eu quelques problèmes en suspens, le plus important étant que je n’ai pas utilisé de rails edge pour créer la nouvelle application (merci RubyInside).

Accrochez d’abord les derniers rails dans un emplacement facile à référencer:

cd ~/goodtimes

git clone https://github.com/rails/rails.git

Mon chemin comprend un ~ / Desktop / Dropbox / mon code est donc disponible partout.

Ensuite, référez-vous à ce rail exec pour créer une nouvelle application:

~/goodtimes/rails/bin/rails new bacon --edge

Selon la complexité de votre firebase database, vous souhaiterez soit créer de nouvelles migrations à l’aide de la syntaxe de modification, soit les laisser être:

  class CreatePosts < ActiveRecord::Migration def change create_table :posts do |t| t.string :title t.text :body t.timestamps end end end 

J'ai eu un problème à déployer sur Heroku, mais la gemme RubyRacer m'a aidé à résoudre ce problème. Voici un exemple de fichier Gem simple:

 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 

Je soupçonne qu'il y aura des utilitaires de communauté pour vous aider à automatiser la migration des anciennes versions de Rails vers le --edge.

Les références:

  1. Comment jouer avec Rails 3.1, CoffeeScript et tout ce qui est jazz en ce moment
  2. Les quatre cavaliers de Rails 3.1beta, Coffee-Script, jQuery, SCSS et Assets
  3. Rails 3.1beta déployé sur Heroku depuis votre iPhone
  4. Migrations réversibles

Je recommande de mettre à jour votre Gemfile pour utiliser les rails latéraux. Par exemple:

 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' 

Vous pouvez en lire plus ici http://pogodan.com/blog/2011/04/24/easy-edge-rails .

Si j’ai bien compris votre question, voici comment:

 gem install rails --pre 

C’est un très bon guide qui explique en détail l’installation de Rails 3.1:

http://railsapps.github.com/installing-rails-3-1.html

Mettre à niveau une application rails 3.0.7 et 3.0.9 en utilisant ce guide a fonctionné pour moi

http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-rails-application-to-version-3-1-0.html

Vous pouvez ignorer les étapes 3 et supérieures si vous le souhaitez – cela fonctionnera toujours, bien que vous ne profitiez pas de tout ce qui est nouveau dans les rails 3.1.