Можно ли узнать, что именно изменилось с помощью наблюдателя в ruby ​​на рельсах? - PullRequest
3 голосов
/ 21 июля 2010

Мне нужно отправить уведомление по электронной почте, когда цена продукта меняется.Возможно ли это сделать с ActiveRecord::Observer или мне нужно использовать логику программирования в форме редактирования?

1 Ответ

5 голосов
/ 21 июля 2010

Вы можете использовать Грязные объекты , чтобы достичь этого, в данном конкретном случае у вас будет что-то подобное в вашем наблюдателе.

FooMailer.deliver_alert(foo) if foo.price_changed?

Согласно: " Как только вы сохраняете грязный объект, он очищает отслеживание измененного состояния и снова считается неизменным"Вы должны запросить prince_changed? до того, как операция save будет выполнена.

Надеюсь, это поможет вам.

...