Son after_createy after_savelo mismo que por funcionalidad?
Quiero hacer una operación con el correo electrónico de un usuario después de la creación de su cuenta.
Quiero hacer esa operación cuando se guarda en la base de datos.
cuál es preferible usar: after_createo after_save?
ruby-on-rails
ruby
ruby-on-rails-3
Swapnil Chincholkar
fuente
fuente

update_allno hace invoca ninguna de las devoluciones de llamada, incluyendoafter_*De los documentos :
fuente
Funciona bien cuando tiene que guardar modelos que no se guardan con mucha frecuencia. Para este ejemplo particular de cambio frecuente de registros, sería aconsejable utilizar
asegúrese de que el modelo se guarde en la base de datos antes de ejecutar la acción after_commit: Calculate_credit_score
fuente
after_commitpero no explique por qué. Por favor, ¿puedes dar más detalles? Tenga en cuenta que seafter_commitejecuta en crear, actualizar y destruir. Documentos: apidock.com/rails/ActiveRecord/Transactions/ClassMethods/… Entonces, ¿no es el mismo comportamiento queafter_saverealmente quieres llamar a ese cron_job después de destruir el registro? ¿O en el caso de operaciones, enviar un correo electrónico a un usuario ahora eliminado? Tenga cuidado con el usoafter_commitafter_commitse ejecuta en esas operaciones CRUD, por lo que si en su caso el correo electrónico se actualiza con frecuencia, sería más fácil combinar la acción para una devolución de llamada específica. En mi caso solíaafter_commit : calculate_profile_update, on: :update