‘ after_create’和‘ after_save’之间的区别是什么? 什么时候使用哪个?

after_createafter_save在功能上是否相同?

我想做一个操作与用户的电子邮件后,其帐户创建。

我想做的操作时,它保存在数据库中。

使用哪个更好: after_create还是 after_save

51707 次浏览

after_create只能工作一次-就在第一次创建记录之后。

每次保存对象时,after_save都能正常工作——即使您只是在多年后更新它

因此,如果你想做这个电子邮件操作只有一次(然后永远不再) ,然后使用 after_create

如果要在保存对象时执行 每个操作,则在 after_save中执行

来自 那些文件:

after_create()

之后才叫 新物体上的 Base.save 尚未保存(没有记录存在)。

after_save()

Base.save之后调用 (不管它是否是一个创造 或更新储存)。

after_save()

当您必须保存不经常保存的模型时,工作正常。 对于这个频繁更改记录的特殊示例,最好使用

 after_commit()

确保在执行操作之前将模型保存在数据库中 After _ commit: Calcul_ credit _ score

def calculate_credit_score
#Call a Cron job
end