Recherche…


Mise à niveau de Rails 4.2 vers Rails 5.0

Remarque: Avant de mettre à niveau votre application Rails, veillez à toujours enregistrer votre code sur un système de contrôle de version, tel que Git.


Pour mettre à niveau Rails 4.2 vers Rails 5.0, vous devez utiliser Ruby 2.2.2 ou une version plus récente. Après la mise à niveau de votre version de Ruby si nécessaire, accédez à votre Gemfile et changez la ligne:

gem 'rails', '4.2.X'

à:

gem 'rails', '~> 5.0.0'

et sur la ligne de commande exécutée:

$ bundle update

Maintenant, lancez la tâche de mise à jour en utilisant la commande:

$ rake rails:update

Cela vous aidera à mettre à jour les fichiers de configuration. Vous serez invité à écraser les fichiers et vous avez plusieurs options à saisir:

  • Y - oui, écraser
  • n - non, ne pas écraser
  • a - tout, écraser ceci et tous les autres
  • q - quitte, abandonne
  • d - diff, montre les différences entre l'ancien et le nouveau
  • h - aide

En règle générale, vous devez vérifier les différences entre les anciens et les nouveaux fichiers pour vous assurer de ne pas recevoir de modifications indésirables.

Les modèles Rails 5.0 ActiveRecord héritent d' ApplicationRecord plutôt que d' ActiveRecord::Base . ApplicationRecord est la super-classe pour tous les modèles, similaire à la façon dont ApplicationController est la super-classe pour les contrôleurs. Pour tenir compte de cette nouvelle manière de gérer les modèles, vous devez créer un fichier dans votre dossier app/models/ nommé application_record.rb , puis modifier le contenu de ce fichier pour qu'il soit:

class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true
end

Rails 5.0 gère également les rappels légèrement différents. Les rappels renvoyés par false n'interrompront pas la chaîne de rappel, ce qui signifie que les rappels suivants seront toujours exécutés, contrairement à Rails 4.2. Lorsque vous effectuez une mise à niveau, le comportement de Rails 4.2 restera, mais vous pouvez passer au comportement Rails 5.0 en ajoutant:

ActiveSupport.halt_callback_chains_on_return_false = false

dans le fichier config/application.rb . Vous pouvez explicitement arrêter la chaîne de rappel en appelant throw(:abort) .

Dans Rails 5.0, ActiveJob héritera d' ApplicationJob , plutôt ActiveJob::Base comme dans Rails 4.2. Pour mettre à niveau vers Rails 5.0, créez un fichier appelé application_job.rb dans le dossier app/jobs/ . Modifier le contenu de ce fichier pour qu'il soit:

class ApplicationJob < ActiveJob::Base
end

Ensuite, vous devez modifier tous vos travaux pour qu'ils héritent d' ApplicationJob plutôt que d' ActiveJob::Base .

L'un des autres changements les plus importants de Rails 5.0 ne nécessite aucun changement de code, mais changera la façon dont vous utilisez la ligne de commande avec vos applications Rails. Vous pourrez utiliser bin/rails , ou simplement des rails , pour exécuter des tâches et des tests. Par exemple, au lieu d'utiliser $ rake db:migrate , vous pouvez maintenant faire $ rails db:migrate . Si vous exécutez $ bin/rails , vous pouvez afficher toutes les commandes disponibles. Notez que la plupart des tâches qui peuvent maintenant être exécutées avec bin/rails fonctionnent toujours avec rake .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow