あるafter_create
とafter_save
機能ごとのと同じ?
アカウント作成後にユーザーのメールで操作したい。
データベースに保存した時にその操作をしたいのですが。
どちらを使用することが望ましい: after_create
またはafter_save
?
あるafter_create
とafter_save
機能ごとのと同じ?
アカウント作成後にユーザーのメールで操作したい。
データベースに保存した時にその操作をしたいのですが。
どちらを使用することが望ましい: after_create
またはafter_save
?
回答:
after_save()
頻繁に保存しないモデルを保存する必要がある場合に問題なく機能します。頻繁にレコードを変更するこの特定の例では、以下を使用することをお勧めします
after_commit()
アクションが実行される前にモデルがデータベースに保存されていることを確認して くださいafter_commit:calculate_credit_score
def calculate_credit_score
#Call a Cron job
end
after_commit
が、理由は説明しません。詳しく説明してもらえますか?after_commit
create、updat、destroy で実行されることに注意してください。ドキュメント:apidock.com/rails/ActiveRecord/Transactions/ClassMethods/…したがってafter_save
、レコードを破棄した後でcron_jobを実際に呼び出したいのと同じ動作ではありませんか?または、opsの場合、削除されたユーザーにメールを送信しますか?使用には注意してくださいafter_commit
after_commit
それらのCRUD操作で実行されるため、彼の場合に電子メールが頻繁に更新される場合は、特定のコールバックのアクションを組み合わせる方が簡単です。私の場合、使用しましたafter_commit : calculate_profile_update, on: :update
update_all
はコールバックをafter_*