是after_create
和after_save
同为每个功能?
创建帐户后,我想对用户的电子邮件进行操作。
当它保存在数据库中时,我想执行该操作。
最好使用: after_create
或after_save
?
是after_create
和after_save
同为每个功能?
创建帐户后,我想对用户的电子邮件进行操作。
当它保存在数据库中时,我想执行该操作。
最好使用: after_create
或after_save
?
Answers:
after_save()
当您必须保存不经常保存的模型时,效果很好。对于这个经常更改记录的特定示例,建议使用
after_commit()
确保在执行操作after_commit之后将模型保存在数据库中 :calculate_credit_score
def calculate_credit_score
#Call a Cron job
end
after_commit
但不解释原因。请您详细说明一下?请注意,它after_commit
可以在创建,更新和销毁上运行。文档:apidock.com/rails/ActiveRecord/Transactions/ClassMethods / ...因此,它与after_save
您真正要销毁记录后调用cron_job的行为不同?还是在操作情况下,将电子邮件发送给现在已删除的用户?使用时要小心after_commit
after_commit
在这些CRUD操作上运行,因此,如果他的电子邮件经常更新,则将操作合并到特定的回调将更容易。就我而言,我使用过after_commit : calculate_profile_update, on: :update
update_all
不会调用任何回调,包括after_*