2015-04-03 2 views
0

Я не могу найти документацию, описывающую, что происходит во время каждого этапа жизненного цикла ActiveRecord. В номерах Guide и API перечислены доступные обратные вызовы.Что происходит во время каждого этапа жизненного цикла модели ActiveRecord?

Как я узнаю, какой обратный вызов подходит, если я не знаю состояние модели или что произошло раньше на жизненном цикле?

Например, когда модель сохраняется и получает id? В руководстве перечислены функции обратного вызова:

3.1 Создание объекта
before_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save
after_commit/after_rollback

Итак, я уверен, что модель не была сохранена, а не имеет и id, до того, как вызывается before_save. Я бы ожидал, что модель будет иметь и id до after_save. К сожалению, я понятия не имею, где, между этими двумя вызовами, была сохранена модель и получен ее идентификатор.

EDIT

Опять же, это чисто один пример. Я уточнил вопрос, чтобы уточнить: «Что происходит во время каждого этапов жизненного цикла модели ActiveRecord?»

+0

Нижняя нить без объяснений? Я бы поставил вопрос лучше, если бы знал, что вам не нравится в этом. –

ответ

0

На самом деле я не могу предоставить вам ссылку, где объясняются все это.

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

0

Действие «сохранить» - это когда выполняется запрос на вставку записи в базу данных, и обычно это действие назначает идентификатор.

Я не могу точно сказать, что исключений нет, но идентификаторы обычно назначаются базой данных во время процесса вставки. Назначенный идентификатор может быть передан обратно в приложение как часть инструкции insert.

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