Вопрос по validation, ruby-on-rails-3, ruby-on-rails, activerecord – Каков порядок обратных вызовов и проверок ActiveRecord?
Мне было интересно, в каком порядке вызываются обратные вызовы и проверки при создании объекта ActiveRecord.
Допустим, у меня есть несколько пользовательских проверок & amp; обратные вызовы, подобные следующему:
validates :reference_code, :if => :reference_code, :on => :create
before_create :assign_reference
какой из них будет первым? Сначала должен произойти обратный вызов, иначе проверка может завершиться неудачей.
айти вActiveRecord::Callbacks
documentation, Списки для Rails 4, 3 & amp; 2 ниже.
Самую последнюю версию этого списка можно найти вРельсы 4 направляющие.
Creating an objectbefore_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save
after_commit/after_rollback
Updating an object
before_validation
after_validation
before_save
around_save
before_update
around_update
after_update
after_save
after_commit/after_rollback
Destroying an object
before_destroy
around_destroy
after_destroy
after_commit/after_rollback
Rails 3
Самую последнюю версию этого списка можно найти вНаправляющие 3 направляющих.
Creating an objectbefore_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save
Updating an object
before_validation
after_validation
before_save
around_save
before_update
around_update
after_update
after_save
Destroying an object
before_destroy
around_destroy
after_destroy
Rails 2
Самую последнюю версию этого списка можно найти вРельсы 2.3 Направляющие
Creating an objectbefore_validation
before_validation_on_create
after_validation
after_validation_on_create
before_save
before_create
INSERT
operation
after_create
after_save
Updating an object
before_validation
before_validation_on_update
after_validation
after_validation_on_update
before_save
before_update
UPDATE
operation
after_update
after_save
Destroying an object
before_destroy
DELETE
operation
after_destroy
Так как вам нужно сначала подтвердитьreference_code
,assign_reference
метод может быть вызван вafter_validation
обратный вызов или любой обратный вызов после него в списке, который я предоставил выше.