São after_create
e são after_save
iguais às funcionalidades?
Quero fazer uma operação com o email de um usuário após a criação da conta.
Eu quero fazer essa operação quando for salva no banco de dados.
qual é preferível usar: after_create
ou after_save
?
ruby-on-rails
ruby
ruby-on-rails-3
Swapnil Chincholkar
fonte
fonte
update_all
não invoca nenhum retorno de chamada, incluindoafter_*
Dos documentos :
fonte
Funciona bem quando você precisa salvar modelos que não são salvos com muita frequência. Neste exemplo específico de alteração de registros com freqüência, seria aconselhável usar
certifique-se de que o modelo seja salvo no banco de dados antes que a ação seja executada após a confirmação:
fonte
after_commit
mas não explica o porquê. Por favor, você pode elaborar? Observe queafter_commit
é executado em criar, atualizar e destruir. Documentos: apidock.com/rails/ActiveRecord/Transactions/ClassMethods/… Portanto, não é o mesmo comportamento queafter_save
você realmente deseja chamar esse cron_job depois de destruir o registro? Ou, no caso das operações, envie um email para um usuário excluído agora? Tenha cuidado com o usoafter_commit
after_commit
é executado nessas operações CRUD; portanto, se o email for atualizado com frequência, será mais fácil combinar a ação para um retorno de chamada específico. No meu caso, eu useiafter_commit : calculate_profile_update, on: :update