Rails/ActiveRecord : Obtenir la liste des attributs modifiés

1

Avatar QuozPowa
QuozPowa
Auteur Admin
Comment est-il possible de connaitre la liste des attributs modifiés lors de la mise à jour d'une entité ActiveRecord dans Rails ? Une entité persistée a-t-elle connaissance des attributs changés et si oui à travers quelles méthodes ? L'objectif est de pouvoir se servir des conditions <attribut>_has_changed?
La classe Dirty d'ActiveModel le permet et il semblerait qu'ActiveRecord dispose aussi de méthodes similaires.

https://api.rubyonrails.org/classes/ActiveModel/Dirty.html

https://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/Dirty.html

Les changements des attributs ne sont pas traqués par défaut ?

EDIT : le problème est résolu en passant de la version ruby 2.7.0 à 2.7.3 en réinstallant les dépendances. Ma version d'ActiveRecord n'était visiblement pas à jour.

0 0
Liens joints à ce post

ActiveModel::Dirty

Active Model Dirty Provides a way to track changes in your object in the same way as Active Record does.

api.rubyonrails.org

ActiveRecord::AttributeMethods::Dirty

Active Record Attribute Methods Dirty Provides a way to track changes in your Active Record models. It adds all methods from ActiveModel::Dirty and adds database-specific methods.

api.rubyonrails.org