2011-02-04 63 views
1

我有一個模型,在'name'屬性上有2個驗證。它是這樣的:根據以前的驗證防止導軌驗證

validates :name, :uniqueness => true 

validate do 
    errors.add(:name, "is dumb") if name_is_dumb? 
end 

我不想第二次驗證,如果第一個驗證失敗運行(名稱不是唯一的)。

什麼是最好和最乾淨的方式來做到這一點?

+1

也許選中「錯誤」內容 – apneadiving 2011-02-04 19:05:12

回答

2

按照documentation

回調一般都在定義它們的 順序運行,與 例外定義爲 方法的模型,這是所謂的 最後的回調。

所以下面的代碼片段應該工作:

validates :name, :uniqueness => true 

validate do 
    errors.add(:name, "is dumb") unless errors[:name].nil? 
end