[英]Ruby on Rails: Iterate model values from another model before_create / before_save
[英]Ruby on Rails Callback, what is difference between :before_save and :before_create?
您能否详细解释一下 Rails 回调上的:before_save
和:before_create
Ruby 是什么,以及它们与 Rails 验证有什么关系? 验证是否发生在:before_save
或:before_create
?
在 Rails 下的创建操作中,数据库操作之前有 6 个回调,之后有 2 个。 按顺序,这些是:
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
回调之前进行的。
before_save
发生在before_create
之前。 据我所知,他们之间没有发生任何事情。 但是before_save
也会在更新操作时触发,而before_create
只会在创建时触发。
每次保存 object 时都会调用before_save
。 所以对于新的和现有的对象。 (创建和更新操作)
before_create
仅在创建之前。 因此仅适用于新对象(创建操作)
before_create
vs before_save:on =>:create
有时您必须注意回调的顺序
有关更多详细信息,请参见此处:
http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.