自定义验证未设置具有错误返回的回滚

时间:2018-11-14 20:30:35

标签: ruby-on-rails

比方说,如果它返回false,我想创建一个条件以不创建新记录。我的自定义验证未创建回滚。

user.rb

class User < ApplicationRecord

    validate :test # my custom validation


    private

    def test
        # condition to return false
        false
    end
end

我应该进行其他任何预览配置吗?谢谢。

1 个答案:

答案 0 :(得分:1)

自定义验证应在模型的错误数组中添加错误,例如:

def test
  errors[:base] << "This user is invalid because ..."
end

方法valid?检查errors数组中是否有任何错误。它不关心自定义验证器的返回值。