Ruby on Rails - after_validation是否有效?

eni9jsuy  于 12个月前  发布在  Ruby
关注(0)|答案(3)|浏览(106)

现在,据我所知,即使模型验证失败,after_validation也会被调用。有没有一种方法可以只在模型有效的情况下调用它?我尝试在after_validation方法中添加return false unless self.valid?,但这会再次触发验证,并创建一个无限循环。

2uluyalo

2uluyalo1#

失败的验证会增加记录的错误,因此您可以检查:

return false unless self.errors.empty?
ds97pgxw

ds97pgxw2#

你有没有考虑过使用before_save回调函数?
我相信只有在对象有效的情况下才会调用。

jtw3ybtb

jtw3ybtb3#

我知道这是一个老问题,但当我在我创建的模型上使用自定义验证时,我遇到了同样的错误。查看文档,有一部分涉及自定义方法,它指出每次.valid?方法时都会调用此类验证。这可能就是当:after_validation回调被触发时,无限循环被触发的原因。

相关问题