我有两张桌子:人和车:
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/

10-12 05:13