您能详细解释一下:before_save
和:before_create
RubyonRails回调是什么吗?它们与Rails验证有什么关系?验证是否发生在:before_save
或:before_create
之后?
在Rails下的创建操作中,数据库操作之前有六个回调,之后有两个回调。按顺序,这些是:
before_validation
before_validation_on_create
after_validation
after_validation_on_create
before_save
before_create
数据库插入after_create
after_save
更新操作具有完全相同的集合,只是处处读取update
而不是create
(以及Update而不是INSERT)。
从中可以看出,验证是在before_save
和before_create
回调之前执行的。
CCD_ 17出现在CCD_ 18之前。据我所知,他们之间没有发生任何事情;但before_save
也将在更新操作时激发,而before_create
仅在创建时激发。
before_save
。对于新的和现有的对象也是如此。(创建和更新操作)
before_create
仅在创建之前。因此,仅针对新对象(创建操作)
before_create
与before_save :on => :create
有时你必须小心回调的顺序
请参阅此处了解更多详细信息:http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/