Correccion - Mejora #5561
cerrada[Rails 5.2] Sustituir forma de acceder a nivel general sobre si un campo ha sido modificado
100%
Descripción
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
Implementación¶
https://git.semillasl.com/gong/gor/-/merge_requests/58/diffs
Actualizado por Oscar Abad hace 2 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
Actualizado por Oscar Abad hace 2 meses
- Se actualizó Descripción (diferencias)
- Estado cambiado de Nueva a En Curso
Actualizado por Oscar Abad hace alrededor de 2 meses
- Estado cambiado de En Curso a Resuelta
- % Realizado cambiado de 0 a 100
Actualizado por suela suela hace 26 días
¿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