-
-
Notifications
You must be signed in to change notification settings - Fork 8
2019_05 Actualizando a rails 5
Algunas ayudas que nos han facilitado migrar motores y aplicaciones basadas en sip a Rails 5:
Antes de modificar Gemfile
con
gem "rails", '~> 5.0.0'
recomendamos leer y aplicar http://guides.rubyonrails.org/upgrading_ruby_on_rails.html
Al ejecutar desde el directorio de la aplicación
rails app:update
definitivamente no es buena idea permitirle modificar config/boot.rb
, config/application.rb
, config/routes.rb
, config/initializers/inflections.rb
ni config/environment.rb
. Los único cambios a estos archivos por hacer manualmente son en config/application.rb
y config/environment.rb
remplazando:
require File.expand_path('../boot', __FILE__)
por
require_relative 'boot'
En el archivo config/initializers/new_framework_defaults.rb
quedarán varias líneas en false, que debe ir poniendo en true y probando a medida que cambia.
De config/application.rb
se ha eliminado
config.active_record.raise_in_transactional_callbacks = true
Tardecito pero notamos que desde Rails 5 las asociaciones belongs_to que pueden ser NULL deben tener optional: true. Ver https://blog.bigbinary.com/2016/02/15/rails-5-makes-belong-to-association-required-by-default.html
before_filter
se puede cambiar directo por before_action
Hemos notado que ya no se requiere en el Gemfile
:
gem "jquery-ui-bootstrap-rails", git: "https://github.com/kristianmandrup/jquery-ui-bootstrap-rails"
y por tanto tampoco en stylesheet/application.css
:
*= require ui-bootstrap/jquery-ui-bootstrap
*= require ui-bootstrap/ui-wijmo
ni su análogo en app/assets/javascript/applicacion.js
Turbolinks 5 nos ha parecido que si acelera la carga de páginas, pero en aplicaciones que tienen enlaces a anclas de la misma página o a '#' hay problemas con turbolinks 5.0.0 (ver https://github.com/turbolinks/turbolinks/issues/75 ). En algunos casos hemos tenido que dejar turbolinks 2.5.3.
Para que los motores y aplicaciones estén listos para cualquiera de los dos, en app/assets/javascripts/motor/application.js
o app/assets/javascript/application.js
es bueno cambiar:
$(document).on('ready page:load', function() {
por
$(document).on('turbolinks:load ready page:load', function() {
Para probar controladores en la sección de pruebas del Gemfile incluimos:
gem 'rails-controller-testing'
Debe ejecutar desde el directorio de aplicación:
bin/rails db:environment:set RAILS_ENV=test
Y las pruebas a controladores ahora requieren que los métodos get
, put
y delete
tengan parámetros params
y session
explícitos, así se convierte:
get :index, {}, valid_session
a
get :index, params: {}, session: valid_session
Nos ha ido bien empleando puma en lugar de webrick. Para esto ha bastado
- Incluir
gem 'puma'
enGemfile
- En directorio de aplicación copiar
config/puma.rb
de otra aplicación Rails 5.
Desarrollado por Pasos de Jesús. Dominio público de acuerdo a legislación colombiana. Agradecemos financiación para personalizaciones de dominio público a diversas organizaciones, ver https://github.com/pasosdeJesus/sivel2/blob/master/CREDITOS.md
- Validación de etiquetas de Colombia y sus departamentos entre OSM de Sep.2022 y DIVIPOLA 2022
- Actualización a DIVIPOLA 2022-07 y Resumen ejecutivo de la actualización a DIVIPOLA 2022-07
- Actualización a DIVIPOLA 2021 y Resumen ejecutivo de la actualización a DIVIPOLA 2021
- Actualización a Rails 7
- Actualización a DIVIPOLA 2020 y Resumen ejecutivo de la actualización a DIVIPOLA 2020
- Extensiones para Chomium útiles para desarrollo
- Actualización de sip 2.0b11 a 2.0b12
- Actualización de sip 2.0b10 a 2.0b11
- Actualización de Rails 6.0 a Rails 6.1
- Resumen ejecutivo de la actualización a DIVIPOLA 2019
- Actualización a DIVIPOLA 2019
- Actualización-de-sip-2.0b6-a-sip-2.0b7
- Pasando de sprockets a webpacker con Rails 6
- Actualización a Rails 6 en 6 pasos
- Actualización a DIVIPOLA 2018
- Actualización de Rails 5.1 a Rails 5.2
- Actualizando a Rails 5
- Actualización a PostgreSQL posterior a 10.2