2017-10-19 35 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

Ty,它的工作!很好的答案! – AlexQuezada