Sont after_create
et after_save
les mêmes que par fonctionnalité?
Je souhaite effectuer une opération avec le courrier électronique d'un utilisateur après la création de son compte.
Je veux faire cette opération quand il est enregistré dans la base de données.
qui est préférable d'utiliser: after_create
ou after_save
?
after_create
Ne fonctionne qu'une seule fois, juste après la création de l'enregistrement.
after_save
Fonctionne chaque fois que vous enregistrez l'objet, même si vous ne l'actualisez que plusieurs années plus tard.
Donc, si vous voulez faire cette opération de courrier électronique seulement une fois (puis plus jamais), utilisez after_create
.
Si vous voulez le faire tous les fois l'objet est enregistré, faites-le dans after_save
De les docs :
after_create()
Est appelé après
Base.save
Sur les nouveaux objets qui n’ont pas encore été sauvegardés (aucun enregistrement n’existe).
after_save()
Est appelé après
Base.save
(Qu’il s’agisse d’une sauvegarde de création ou de mise à jour).
after_save()
Fonctionne bien lorsque vous devez enregistrer des modèles qui ne sont pas enregistrés très souvent. Pour cet exemple particulier de modification fréquente des enregistrements, il est conseillé d’utiliser
after_commit()
assurez-vous que le modèle est enregistré dans la base de données avant l'exécution de l'action after_commit: Calculate_credit_score
def calculate_credit_score
#Call a Cron job
end