我正在执行定期 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 回调(或等效的)?提前谢谢了。