Sont after_create
et after_save
les mêmes que par fonctionnalité?
Je souhaite faire une opération avec l'email d'un utilisateur après la création de son compte.
Je veux faire cette opération lorsqu'elle est enregistrée dans la base de données.
quel est préférable d'utiliser: after_create
ou after_save
?
ruby-on-rails
ruby
ruby-on-rails-3
Swapnil Chincholkar
la source
la source
update_all
after_*
À partir de la documentation :
la source
Fonctionne très 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 serait conseillé d'utiliser
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
la source
after_commit
mais n'expliquez pas pourquoi. Pouvez-vous préciser? Notez queafter_commit
s'exécute sur create, updat et destroy. Docs: apidock.com/rails/ActiveRecord/Transactions/ClassMethods / ... Donc ce n'est pas le même comportement queafter_save
Vous voulez vraiment appeler ce cron_job après avoir détruit l'enregistrement? Ou dans le cas des opérations, envoyer un e-mail à un utilisateur maintenant supprimé? Soyez prudent avec l'utilisationafter_commit
after_commit
s'exécute sur ces opérations CRUD, donc si dans son cas l'e-mail est mis à jour souvent, alors il serait plus facile de combiner l'action pour un rappel spécifique. Dans mon cas, j'ai utiliséafter_commit : calculate_profile_update, on: :update