Ответ 1
В операции создания под Rails перед операцией базы данных есть шесть обратных вызовов и два после. В порядке:
-
before_validation
-
before_validation_on_create
-
after_validation
-
after_validation_on_create
-
before_save
-
before_create
ВСТАВКА БАЗА ДАННЫХ -
after_create
-
after_save
Операции обновления имеют точно такой же набор, за исключением read update
вместо create
всюду (и UPDATE вместо INSERT).
Из этого вы можете видеть, что проверка выполняется перед обратными вызовами before_save
и before_create
.
before_save
происходит немного раньше before_create
. Насколько мне известно, между ними ничего не происходит; но before_save
также запускает операции обновления, а before_create
будет запускаться только при создании.