我有两张桌子:人和车:Person has_many cars
Car belongs_to person
。
我想在汽车的license_plate
发生变化时给此人发送电子邮件。
我已经成功地生成了邮件代码,但是在设置if
回调中的after_save
条件时有问题。
#Inside Person models
after_save :send_mail_notification, if: (self.cars.first.order('updated_at DESC').changed?)
def send_mail_notification(person)
...
end
我搞错了
NoMethodError: undefined method `cars' for #<Class:0x4852ba8>
所以,我想
self
在回调中不可用有什么解决办法吗?谢谢
最佳答案
after_save :send_mail_notification, if: Proc.new { |model| model.cars.order('updated_at DESC').first.changed? }
关于ruby-on-rails - 在after_save回调中使用`self`对象时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15745490/