防止基于先前验证的轨道验证

时间:2011-02-04 19:00:38

标签: ruby-on-rails ruby validation ruby-on-rails-3 activerecord

我在'name'属性上有一个带有2个验证的模型。它是这样的:

validates :name, :uniqueness => true

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

如果第一次验证失败(名称不唯一),我不希望第二次验证运行。

最好和最干净的方法是什么?

1 个答案:

答案 0 :(得分:2)

根据documentation

  

回调通常在。中运行   命令他们被定义,与   定义为的回调异常   模型上的方法,称为   最后。

因此,以下代码段应该有效:

validates :name, :uniqueness => true

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