RubyonRails回调,:before_save和:before_create之间有什么区别



您能详细解释一下:before_save:before_create RubyonRails回调是什么吗?它们与Rails验证有什么关系?验证是否发生在:before_save:before_create之后?

在Rails下的创建操作中,数据库操作之前有六个回调,之后有两个回调。按顺序,这些是:

  1. before_validation
  2. before_validation_on_create
  3. after_validation
  4. after_validation_on_create
  5. before_save
  6. before_create

    数据库插入
  7. after_create
  8. after_save

更新操作具有完全相同的集合,只是处处读取update而不是create(以及Update而不是INSERT)。

从中可以看出,验证是在before_savebefore_create回调之前执行的。

CCD_ 17出现在CCD_ 18之前。据我所知,他们之间没有发生任何事情;但before_save也将在更新操作时激发,而before_create仅在创建时激发。

每次保存对象时都会调用

before_save。对于新的和现有的对象也是如此。(创建和更新操作)

before_create仅在创建之前。因此,仅针对新对象(创建操作)

before_createbefore_save :on => :create

有时你必须小心回调的顺序

请参阅此处了解更多详细信息:http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/

相关内容

  • 没有找到相关文章

最新更新