Szukaj…


Aktualizacja z Rails 4.2 do Rails 5.0

Uwaga: przed aktualizacją aplikacji Railsowej zawsze pamiętaj o zapisaniu kodu w systemie kontroli wersji, takim jak Git.


Aby dokonać aktualizacji z Rails 4.2 do Rails 5.0, musisz używać Ruby 2.2.2 lub nowszej wersji. Po uaktualnieniu wersji Ruby, jeśli to konieczne, przejdź do pliku Gemfile i zmień wiersz:

gem 'rails', '4.2.X'

do:

gem 'rails', '~> 5.0.0'

i w linii poleceń uruchom:

$ bundle update

Teraz uruchom zadanie aktualizacji za pomocą polecenia:

$ rake rails:update

Pomoże to zaktualizować pliki konfiguracyjne. Zostaniesz poproszony o zastąpienie plików i masz kilka opcji do wprowadzenia:

  • T - tak, zastąp
  • n - nie, nie zastępuj
  • a - wszyscy, zastąpcie to i wszystkie inne
  • q - wyjdź, przerwij
  • d - diff, pokaż różnice między starym a nowym
  • h - pomoc

Zazwyczaj powinieneś sprawdzić różnice między starymi i nowymi plikami, aby upewnić się, że nie otrzymujesz niepożądanych zmian.

Modele ActiveRecord Railsach 5.0 dziedziczą z ApplicationRecord , a nie ActiveRecord::Base . ApplicationRecord jest nadklasą dla wszystkich modeli, podobnie jak ApplicationController jest nadklasą dla kontrolerów. Aby uwzględnić nowy sposób obsługi modeli, musisz utworzyć plik w folderze app/models/ nazwie application_record.rb a następnie edytować zawartość tego pliku, aby:

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

Railsy 5.0 również nieco inaczej obsługują wywołania zwrotne. Oddzwanianie zwracające wartość false nie zatrzyma łańcucha oddzwaniania, co oznacza, że kolejne oddzwaniania będą nadal działać, w przeciwieństwie do Rails 4.2. Po uaktualnieniu zachowanie Rails 4.2 pozostanie, chociaż możesz przełączyć się na zachowanie Rails 5.0, dodając:

ActiveSupport.halt_callback_chains_on_return_false = false

do pliku config/application.rb . Możesz jawnie zatrzymać łańcuch oddzwaniania, wywołując throw(:abort) .

W Rails 5.0 ActiveJob odziedziczy po ApplicationJob , a nie ActiveJob::Base jak w Rails 4.2. Aby uaktualnić do Rails 5.0, utwórz plik o nazwie application_job.rb w folderze app/jobs/ . Edytuj zawartość tego pliku, aby:

class ApplicationJob < ActiveJob::Base
end

Następnie musisz zmienić wszystkie zadania, aby dziedziczyły z ApplicationJob a nie ActiveJob::Base .

Jedna z innych największych zmian w Rails 5.0 nie wymaga żadnych zmian kodu, ale zmieni sposób korzystania z wiersza poleceń w aplikacjach Rails. Będziesz mógł używać bin/rails , lub po prostu rails , do uruchamiania zadań i testów. Na przykład, zamiast używać $ rake db:migrate , możesz teraz zrobić $ rails db:migrate . Jeśli uruchomisz $ bin/rails , możesz wyświetlić wszystkie dostępne polecenia. Zauważ, że wiele zadań, które można teraz uruchomić z bin/rails nadal działa przy użyciu rake .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow