现在,据我所知,即使模型未通过验证,也会调用after_validation
。如果模型有效,有没有办法只调用它?我尝试在return false unless self.valid?
方法中添加after_validation
,但会再次触发验证并创建无限循环。
答案 0 :(得分:17)
失败的验证会增加记录的错误,因此您只需检查:
return false unless self.errors.empty?
答案 1 :(得分:2)
您是否考虑过使用before_save回调?
我相信只有在对象有效时才会调用它。
答案 2 :(得分:1)
我知道这是一个老问题,但在我创建的模型上使用自定义验证时遇到了同样的错误。查看docs,其中有一个部分涉及自定义方法,并指出每次.valid?
方法都会调用此类验证。这可能是在触发:after_validation
回调时触发无限循环的原因。