2017-10-19 16 views
0

私は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

検証

を設定するときは、だからあなたのモデルでは、私はあなたのようなものを持っていると仮定し:onキーワードを使用することができます。

validate :codigoDuplicado? 

あなたは、はいこの

validate :codigoDuplicado?, on: :create 
+0

を作ることができます私は、素晴らしいよ!私は今それを試してみよう! – AlexQuezada

+0

タイ、それは働いた!いい答え! – AlexQuezada

関連する問題