Proyecto

General

Perfil

Migracion Rails4

Correciones generales de Rails

  • config.whiny_nils option is deprecated and no longer works (environments)
  • config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly
  • DEPRECATION WARNING: You didn't set config.secret_key_base

Correcciones de ActiveRecord

  • El registro de sesiones en BBDD desaparece de activerecord y es necesario habilitarlo como gema:
gem 'activerecord-session_store'
  • En ocasiones usabamos expresiones tipo:
condiciones_tareas = ["estado_tarea.activo IS TRUE AND proyecto_id IN (?) AND usuario_asignado_id = ?",@usuario_identificado.proyecto, @usuario_identificado.id]

estas expresiones devuelven un error puesto que ya no se convierte el array de proyectos en array de ids de proyectos. La expresión correcta ahora implica usar pluck:

condiciones_tareas = ["estado_tarea.activo IS TRUE AND proyecto_id IN (?) AND usuario_asignado_id = ?", @usuario_identificado.proyecto.pluck(:id), @usuario_identificado.id]
  • DEPRECATION WARNING: Relation#all is deprecated. Este error surge en expresiones como
agentes =  [[_("Todos"), "todos"]] + Agente.all(:order => "nombre", :conditions => {:financiador => true }).collect{|p| ...

y hay que reescribirlo como:

agentes =  [[_("Todos"), "todos"]] + Agente.where(financiador: true).order(:nombre).collect{|p| ...
  • DEPRECATION WARNING: The following options in your Usuario.has_many :libro declaration are deprecated: :uniq. Please use a scope block instead.
  • el método all no admite parámetros por lo que hay que sustituirlos por las combinaciones joins, where, order, ...
  • no es válido el método sort para ordenar consultas de activerecord y hay que usar order:
NoMethodError (undefined method `sort!' for #<ActiveRecord::Associations::CollectionProxy []>)

Correcciones en helpers, vistas y gemas gráficas:

  • La gema ajax-chosen-rails tiene dependencias que impiden rails >= 4 . Se carga chosen-rails de tsechingho
gem 'chosen-rails', git: 'https://github.com/tsechingho/chosen-rails.git'
  • OJO: Deshabilitamos calendar-date-select. PENDIENTE: Los helpers hay que adaptarlos para usar el input type="date"
  • OJO: Deshabilitamos la gema de recaptcha. PENDIENTE: Verificar una gema que la sustituya y el codigo comentado en la vista de login de usuario
  • Los helpers de construcción de formularios (selector, texto, ...) no funcionan. Internamente utilizan helpers de rails (selec_tag, text_field, ...) y por como los estamos usando, estos no crean correctamente los atributos "name", con lo que los formularios se envian sin valores.