2015-09-01 2 views
7

Я хочу отправить запрос на внешнее программное обеспечение, когда я уверен, что модель сохранена.after_create после неудачного сохранения?

1) Как определить порядок, в котором вызывается after_create?

2) он вызван на неудавшееся создание?

В API документация РЕЛЬСЫ говорит:

Обратите внимание, что этот обратный вызов по-прежнему завернуты в сделке вокруг сохранить.

3) Означает ли это требует save, чтобы быть успешным, прежде чем after_save называется или это значит, что когда-то save называется after_save всегда срабатывает?

ответ

4

Как бы я узнал, в каком порядке вызывается after_create, а если не удается создать?

Вы можете прочитать порядок обратных вызовов здесь: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

Если транзакция завершается неудачно, save событие (и create/update события) возвращают false. Это остановит все последующие обратные вызовы. Таким образом, after_save, after_create/after_update все никогда не запускаются при неудавшемся save (или с ошибкой create/update).

... и транзакция откатется, поэтому база данных фактически не обновляется.

Смежные вопросы