Buscar..


Actualización de Rails 4.2 a Rails 5.0

Nota: Antes de actualizar su aplicación Rails, asegúrese siempre de guardar su código en un sistema de control de versiones, como Git.


Para actualizar de Rails 4.2 a Rails 5.0, debe usar Ruby 2.2.2 o más reciente. Después de actualizar su versión de Ruby si es necesario, vaya a su Gemfile y cambie la línea:

gem 'rails', '4.2.X'

a:

gem 'rails', '~> 5.0.0'

y en la línea de comandos ejecute:

$ bundle update

Ahora ejecuta la tarea de actualización usando el comando:

$ rake rails:update

Esto le ayudará a actualizar los archivos de configuración. Se le pedirá que sobrescriba los archivos y tiene varias opciones para ingresar:

  • Y - si, sobrescribir
  • n - no, no sobrescribir
  • a - todos, sobrescriben esto y todos los demás
  • q - renunciar, abortar
  • d - dif, muestra las diferencias entre lo antiguo y lo nuevo.
  • h - ayuda

Por lo general, debe verificar las diferencias entre los archivos antiguos y nuevos para asegurarse de que no esté recibiendo cambios no deseados.

Los modelos ActiveRecord 5.0 ActiveRecord heredan de ApplicationRecord , en lugar de ActiveRecord::Base . ApplicationRecord es la superclase de todos los modelos, similar a cómo ApplicationController es la superclase de los controladores. Para tener en cuenta esta nueva forma en que se manejan los modelos, debe crear un archivo en su app/models/ carpeta llamada application_record.rb y luego editar el contenido de ese archivo para que sea:

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

Rails 5.0 también maneja callbacks ligeramente diferentes. Las devoluciones de llamada que devuelven false no detendrán la cadena de devolución de llamada, lo que significa que las devoluciones de llamada subsiguientes se ejecutarán, a diferencia de Rails 4.2. Cuando actualices, el comportamiento de Rails 4.2 se mantendrá, aunque puedes cambiar al comportamiento de Rails 5.0 agregando:

ActiveSupport.halt_callback_chains_on_return_false = false

al archivo config/application.rb . Puede detener explícitamente la cadena de devolución de llamada llamando a throw(:abort) .

En Rails 5.0, ActiveJob heredará de ApplicationJob , en lugar de ActiveJob::Base como en Rails 4.2. Para actualizar a Rails 5.0, cree un archivo llamado application_job.rb en la carpeta app/jobs/ . Edite los contenidos de ese archivo para que sean:

class ApplicationJob < ActiveJob::Base
end

Luego, debe cambiar todos sus trabajos para heredar de ApplicationJob lugar de ActiveJob::Base .

Uno de los otros cambios más importantes de Rails 5.0 no requiere ningún cambio de código, pero cambiará la forma en que usa la línea de comandos con sus aplicaciones Rails. Podrá usar bin/rails , o solo rails , para ejecutar tareas y pruebas. Por ejemplo, en lugar de usar $ rake db:migrate , ahora puede hacer $ rails db:migrate . Si ejecuta $ bin/rails , puede ver todos los comandos disponibles. Tenga en cuenta que muchas de las tareas que ahora se pueden ejecutar con bin/rails aún funcionan con rake .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow