Apakah after_create
dan after_save
sama seperti per fungsionalitas?
Saya ingin melakukan operasi dengan email pengguna setelah pembuatan akunnya.
Saya ingin melakukan operasi itu ketika disimpan dalam database.
mana yang lebih disukai untuk digunakan: after_create
atau after_save
?
ruby-on-rails
ruby
ruby-on-rails-3
Swapnil Chincholkar
sumber
sumber
update_all
tidak meminta panggilan balik apa pun, termasukafter_*
Dari dokumen :
sumber
Berfungsi dengan baik ketika Anda harus menyimpan model yang tidak terlalu sering disimpan. Untuk contoh khusus ini sering mengubah catatan akan disarankan untuk digunakan
pastikan bahwa model disimpan dalam database sebelum tindakan dijalankan after_commit: calcul_credit_score
sumber
after_commit
tetapi tidak menjelaskan alasannya. Bisakah Anda jelaskan? Perhatikan bahwaafter_commit
berjalan pada buat, perbarui dan hancurkan. Documents: apidock.com/rails/ActiveRecord/Transactions/ClassMethods/... Jadi bukan perilaku yang sama sepertiafter_save
Anda benar-benar ingin memanggil cron_job setelah setelah menghancurkan catatan? Atau dalam kasus ops, kirim email ke pengguna yang sekarang dihapus? Hati-hati menggunakanafter_commit
after_commit
berjalan pada operasi CRUD tersebut, jadi jika dalam kasusnya email sering diperbarui, maka akan lebih mudah untuk menggabungkan tindakan untuk panggilan balik tertentu. Dalam kasus saya, saya menggunakanafter_commit : calculate_profile_update, on: :update