ActiveRecord, который на первом месте? - PullRequest
4 голосов
/ 10 июня 2011

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

  1. :before_create
  2. :validates

Ответы [ 4 ]

14 голосов
/ 10 июня 2011

validates идет первым.Из документов :

(-) save
(-) valid
(1) before_validation
(-) validate
(2) after_validation
(3) before_save
(4) before_create
(-) create
(5) after_create
(6) after_save
(7) after_commit
2 голосов
/ 10 июня 2011

из http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

(-) save

(-) valid

(1) before_validation

(-) validate

(2) after_validation

(3) before_save

(4) before_create

(-) create

(5) after_create

(6) after_save

(7) after_commit
2 голосов
/ 10 июня 2011

before_create не вызывается, пока объект не является действительным, поэтому сначала вызывается validates.

1 голос
/ 10 июня 2011

Согласно документам :

(-) сохранить

(-) действительно

(1) before_validation

(-) проверить

(2) после проверки

(3) до сохранения

(4) до создания

(-) создать

(5) after_create

(6) after_save

(7) after_commit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...