如何跳过更新验证?

时间:2017-10-19 21:07:23

标签: ruby-on-rails

我在模型上有自定义验证,它允许我检查1个字段的唯一性但与另一个模型有关,类似于(1,2,3,4,5) - > User1,(1,2,3,4,5) - > User2,因为对于2个不同的用户实际上可以存在一个值,但对于相同的用户而言不是2次,我必须使用自定义验证器!这是我的代码:

def codigoDuplicado?
    @invinveacCommit = Invinveac.where(codproveedor: codproveedor, ndocumento: ndocumento).first
    if @invinveacCommit != nil
        errors.add(:ndocumento, "Ya existe un movimiento con el mismo codigo para el proveedor seleccionado.")
    end
end

我的问题是,它甚至试图验证更新方法,我不需要验证该代码,是否有任何方法可以跳过更新操作的验证?

1 个答案:

答案 0 :(得分:1)

您可以在设置验证时使用:on关键字

所以在你的模型中,我假设你有类似的东西:

validate :codigoDuplicado?

你可以做到这个

validate :codigoDuplicado?, on: :create