Итак, у меня есть after_update
обратный вызов в модели ActiveRecord
для уведомления внешней службы. Это следует вызывать, только если обновляется пара атрибутов. Поэтому я инкапсулировал вызовы saved_change_to_attribute?
в методе, который затем используется в фильтре обратного вызова:
after_update :tell_service!, if: :update_for_service?
def update_for_service?
saved_change_to_name? ||
saved_change_to_city?
end
Теперь update_for_service?
всегда возвращает false
, и я не понимаю, почему.
В консоли:
> p = Person.last
> p.name = 'Tom'
> p.save
true
> p.saved_change_to_name?
true
> p.update_for_service?
false
Что здесь происходит?