根据this answer,自定义验证在方法return true
。
我想知道官方文档中是否提到过这个问题? rails指南仅提及errors.add
作为触发自定义验证方法失败的方法。
答案 0 :(得分:2)
这取决于您使用自定义验证的方式。
如果您使用的是Active Record Callback,即before_save
或before_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,返回值并不重要(正如您所说,文档中未提及),重要的是如果您添加错误阵列。