代码之家  ›  专栏  ›  技术社区  ›  Erik Escobedo

使用RubyonRails中的观察器是否可以知道到底发生了什么变化?

  •  3
  • Erik Escobedo  · 技术社区  · 16 年前

    我需要在产品价格变化时发送电子邮件提醒。 可以用这个吗 ActiveRecord::Observer 还是需要在编辑表单中使用编程逻辑?

    1 回复  |  直到 16 年前
        1
  •  5
  •   jpemberthy    16 年前

    你可以使用 Dirty Objects 为了实现这一点,在这个特定的例子中,您的观察者中会有类似的东西。

    FooMailer.deliver_alert(foo) if foo.price_changed?
    

    据: 保存脏对象后,它将清除其更改的状态跟踪,并再次被视为未更改。 “你应该要求 prince_changed? 之前 save 操作完成。

    希望对你有帮助。