ActiveRecord,哪个先来?

时间:2011-06-09 20:35:40

标签: ruby-on-rails ruby activerecord

简单的问题,按照保存新项目时首先发生的处理顺序。

  1. :before_create
  2. :validates

4 个答案:

答案 0 :(得分:14)

validates排在第一位。来自docs

(-) 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

答案 1 :(得分:2)

在对象有效之前不会调用

before_create,因此首先调用validates。

答案 2 :(得分:2)

来自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

答案 3 :(得分:1)

根据docs

  

( - )保存

     

( - )有效

     

(1)before_validation

     

( - )验证

     

(2)after_validation

     

(3)before_save

     

(4)before_create

     

( - )创建

     

(5)after_create

     

(6)after_save

     

(7)after_commit