Есть after_create
и after_save
такой же , как в функциональности?
Я хочу выполнить операцию с электронной почтой пользователя после создания его учетной записи.
Я хочу проделать эту операцию, когда она будет сохранена в базе данных.
что предпочтительнее использовать: after_create
или after_save
?
ruby-on-rails
ruby
ruby-on-rails-3
Свапнил Чинчолкар
источник
источник
update_all
не вызывает никаких обратных вызовов, в том числеafter_*
Из документов :
источник
Прекрасно работает, когда вам нужно сохранять модели, которые не сохраняются очень часто. Для этого конкретного примера частого изменения записей было бы целесообразно использовать
перед выполнением действия убедитесь, что модель сохранена в базе данных after_commit: calculate_credit_score
источник
after_commit
но не объясняете почему. Не могли бы вы уточнить? Обратите внимание, чтоafter_commit
запускается при создании, обновлении и уничтожении. Документы: apidock.com/rails/ActiveRecord/Transactions/ClassMethods/ ... Значит, это не то же самое поведение, что иafter_save
вы действительно хотите вызвать это cron_job после уничтожения записи? Или в случае ops отправить электронное письмо теперь удаленному пользователю? Будьте осторожны с использованиемafter_commit
after_commit
выполняет эти операции CRUD, поэтому, если в его случае электронное письмо часто обновляется, было бы проще объединить действие для определенного обратного вызова. В моем случае я использовалafter_commit : calculate_profile_update, on: :update