Определить, какие атрибуты были изменены в обратном вызове Rails after_save?

Я настраиваю обратный вызов after_save в моем обозревателе модели, чтобы отправлять уведомление, только если модель ' s опубликованный атрибут изменен с false на true. Поскольку такие методы, как , были изменены? полезны только до сохранения модели, я сейчас (и безуспешно) пытаюсь сделать это следующим образом:

def before_save(blog)
  @og_published = blog.published?
end

def after_save(blog)
  if @og_published == false and blog.published? == true
    Notification.send(...)
  end
end

Есть ли у кого-нибудь предложения по поводу лучший способ справиться с этим, предпочтительно использовать обратные вызовы наблюдателя модели (чтобы не загрязнять код моего контроллера)?

138
задан Frederik Spang 12 August 2017 в 05:52
поделиться