Ruby on Railscallback,before_save和before_create之间有什么区别?
你能否详细解释:before_save
和:before_create
Ruby on Railscallback是什么,以及Railsvalidation需要做什么? validation发生在:before_save
或:before_create
吗?
在Rails的创build操作中,在数据库操作之前有六个callback,之后有两个callback。 为了这些,
-
before_validation
-
before_validation_on_create
-
after_validation
-
after_validation_on_create
-
before_save
-
before_create
数据库插入
-
after_create
-
after_save
更新操作具有完全相同的设置,除了读取update
而不是create
到处(和UPDATE而不是INSERT )。
从这里你可以看到validation是在before_save
和before_create
callback之前进行的。
before_save
稍微在before_create
之前发生。 据我所知,他们之间没有任何反应。 但before_save
也会触发Update操作,而before_create
只会触发Creates。
每次保存对象时都会调用before_save
。 所以对于新的和现有的对象。 (创build和更新操作)
before_create
仅在创build之前。 所以只适用于新对象(创build操作)
before_create
vs before_save :on => :create
有时你必须小心callback的顺序
在这里看到更多的细节: http : //pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/
- 使用JQueryvalidation插件validation具有相同名称的多个表单字段
- 在Rails中调用自定义validation方法
- 如何在actionListener或action方法中执行JSFvalidation?
- 使用jQuery 1.9的MVC 4 Project中的jquery.validate.js错误
- TSQL电子邮件validation(无正则expression式)
- 使用Hibernate Validator进行交叉字段validation(JSR 303)
- WPF数据绑定和validation规则最佳实践
- jQuery禁用单个字段的规则validation
- 使用JWT进行跨域身份validation的单点loginstream程