121 votes

Quelle est la différence entre `after_create` et` after_save` et quand utiliser lequel?

After_create et after_save sont-ils 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?

209voto

Taryn East Points 9698

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 ne souhaitez effectuer cette opération de messagerie qu'une seule fois (puis plus jamais), utilisez after_create .

Si vous voulez le faire chaque fois que l'objet est enregistré, faites-le en after_save

92voto

Michael Kohl Points 33345

De la 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é d'après Base.save (qu'il s'agisse d'un enregistrement de création ou de mise à jour).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X