Есть ли способ Rails проверить, какие атрибуты были обновлены в наблюдателе? - PullRequest
7 голосов
/ 11 октября 2010

У меня есть ActivityObserver, который наблюдает за tasks, и имеет обратный вызов after_update.

Я хочу проверить, был ли определенный атрибут изменен в update.

Есть ли в Rails способ сравнить атрибуты субъекта с тем, какими они были до обновления, или проверить, изменились ли они?

Ответы [ 2 ]

9 голосов
/ 11 октября 2010

Когда выполняется обратный вызов after_update, каждый объект ActiveModel имеет метод с именем changed_attributes.Вы можете проверить это в своей среде отладки.У каждого объекта ActiveRecord есть этот метод.Он содержит хэш всех значений, которые были изменены / модифицированы.Это также называется грязным объектом.

Ознакомьтесь с некоторыми из этих руководств

Railscasts

Грязный объект

1 голос
/ 21 января 2013

В вашем наблюдателе должно быть что-то вроде следующего.Я думаю, что вы искали это ..

...