是否有可能知道使用轨道上的红宝石观察者究竟发生了什么变化?

时间:2010-07-21 15:27:26

标签: ruby-on-rails activerecord observer-pattern

我需要在产品价格发生变化时发送电子邮件提醒。 是否可以使用ActiveRecord::Observer执行此操作,还是需要在编辑表单中使用编程逻辑?

1 个答案:

答案 0 :(得分:5)

你可以使用Dirty Objects来实现这一目标,在这种特殊情况下,你的观察者会有类似的东西。

FooMailer.deliver_alert(foo) if foo.price_changed?

根据:“保存一个脏对象后,它会清除其已更改的状态跟踪,并再次被视为未更改”您应该在{{1}之前要求prince_changed?操作完成。

希望它可以帮助你。