当继承的模型对象验证失败时,错误会引发两次

时间:2013-08-23 11:39:31

标签: ruby-on-rails ruby-on-rails-3.2

实施了子类验证以及超类验证。如何丢弃子类中的超类验证?
我的代码:

class a < ActiveRecord::Base
  validates_presence_of :price
end

class a2 < a
  validates_presence_of :price
end

当我为a2创建对象时,使用以下命令:

x = a2.new
x.save

显示以下错误:

x.errors.full_messages
=> ['price can't be blank','price can't be blank']

如何解决这个问题,以便忽略超类的验证。

2 个答案:

答案 0 :(得分:0)

根据您的代码,预计会出现两条错误消息。

您对继承模型所做的是在验证中再添加一次验证,而不是覆盖它。

答案 1 :(得分:0)

我尝试使用“添加到错误”,除非errors.added?哪个工作正常。