rails自定义验证在返回true时失败吗?

时间:2015-08-17 22:13:18

标签: ruby-on-rails validation model

根据this answer,自定义验证在方法return true

时失败

我想知道官方文档中是否提到过这个问题? rails指南仅提及errors.add作为触发自定义验证方法失败的方法。

1 个答案:

答案 0 :(得分:2)

这取决于您使用自定义验证的方式。

如果您使用的是Active Record Callback,即before_savebefore_validation,如果您return false中的任何一个,则您的验证将失败,并且不会保存记录: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html#module-ActiveRecord::Callbacks-label-before_validation-2A+returning+statements

但是,如果您使用的是此处提到的自定义验证器:http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations,返回值并不重要(正如您所说,文档中未提及),重要的是如果您添加错误阵列。