我正在执行定期 rake 任务以更新User
模型中的属性。如果特定属性已更改,我想执行 Mailer,但我无法调用attribute_changed?
模块,因为它不知道要查询的实例 - 通常你会在模型中通过after_save
回调执行此操作。
所以我有这个:
task :my_task => :environment do
User.all.each do |user|
@howmanythings = user.things.size
user.update_attribute(:total_things, @howmanythings)
user.save
//THIS IS THE BIT THAT DOES NOT WORK:
if user.total_things_changed? == true
SEND MAILER
end
end
end
目前,用户。total_things_changed?
正在返回false
,无论 rake 任务是否已更新该属性。简而言之,我如何在任务中执行 after_save 回调(或等效的)?提前谢谢了。