Могу ли я определить, является ли объект / запись грязным перед сохранением и какие поля изменены в Rails?
Пример
] Предположим, у меня есть модель Person, а у Person есть свойство name и age. В базе данных Человек с идентификатором 1 назван «Джон» с 20 лет.
p = Person.find 1
p.name #John
p.age #20
Теперь, когда я меняю его имя с Джона на Натан, могу ли я каким-то образом идентифицировать
Теперь я знаю ответ для первого. Если я изменю его имя на Натхна, я смогу сделать следующее
p.name = "Nathan"
p.changed? #true
Однако могу ли я определить, какое поле было изменено? Может быть метод, который возвращает массив полей, которые были изменены?
p.dirty_fields #[:name]