Proyecto

General

Perfil

Acciones

Correc. - Mejora #5561

cerrada

[Rails 5.2] Sustituir forma de acceder a nivel general sobre si un campo ha sido modificado

Añadido por Oscar Abad hace 8 meses. Actualizado hace 7 meses.

Estado:
Resuelta
Prioridad:
Normal
Asignado a:
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2024-09-23
Fecha fin:
% Realizado:

100%

Tiempo estimado:
Versión:

Descripción

h1. Especificación

Debido a una incompatibilidad de código que surge a partide de Rails 5.2, hay que:

  • OBLIGATORIO validate, before_X filter:
Sustituir todas las ocurrencias de CAMPO_changed? a saved_change_to_CAMPO?
  • OPCIONAL after_X filter:
Sustituir todas las ocurrencias de CAMPO_changed? a will_save_change_to_CAMPO?

Para más detalles consultar aquí:
https://stackoverflow.com/questions/3861777/determine-what-attributes-were-changed-in-rails-after-save-callback
https://stackoverflow.com/questions/24314584/run-a-callback-only-if-an-attribute-has-changed-in-rails
https://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/Dirty.html

La incidencia ha sido detectada a partir de este ticket creado por el departamento de Gestión de proyectos:
https://dev.intranet.oei.int/issues/1990

h1. Implementación

https://git.semillasl.com/gong/gor/-/merge_requests/58/diffs

Acciones #1

Actualizado por Oscar Abad hace 8 meses

Acciones #2

Actualizado por Oscar Abad hace 8 meses

  • Asunto cambiado de [Rails 5.2] Sustituir a [Rails 5.2] Sustituir forma de acceder a nivel general sobre si un campo ha sido modificado
Acciones #3

Actualizado por Oscar Abad hace 8 meses

Acciones #4

Actualizado por Oscar Abad hace 8 meses

Acciones #5

Actualizado por Oscar Abad hace 8 meses

  • Se actualizó Descripción (diferencias)
  • Estado cambiado de Nueva a En Curso
Acciones #6

Actualizado por Oscar Abad hace 8 meses

  • Estado cambiado de En Curso a Resuelta
  • % Realizado cambiado de 0 a 100
Acciones #8

Actualizado por suela suela hace 7 meses

¿Puede que en la descripción del ticket esté al revés lo que hay que cambiar respecto a los before_save y after_save?

Según leo en https://www.fastruby.io/blog/rails/upgrades/active-record-5-1-api-changes, lo pone al revés:

  • Cambios obligados, en after_save:
    ** attribute_changed? -> saved_change_to_attribute?
    ** changed? -> saved_changes?
    ** changes -> saved_changes
    ** previous_changes has no replacement, since the behavior for it changes.
    ** changed -> saved_changes.keys

  • Cambios sugeridos(opcional), en before_save:
    ** attribute_changed? -> will_save_change_to_attribute?
    ** changed? -> has_changes_to_save?
    ** changes -> changes_to_save

Acciones

Exportar a: Atom PDF