1

我想在将某些属性保存到 ROR 中的数据库之前验证它们。

我的代码如下所示:

class AbstractClass < ActiveRecord::Base
 validate :field_name, :numericality => { :only_integer => true }
 self.abstract_class = true
end

class OtherAbstractClass < AbstractClass
  validate :other_field, :numericality => { :only_integer => true }
  self.abstract_class = true
end

class ConcreteClass < OtherAbstractClass
  validate :third_field, :numericality => { :only_integer => true }
end

我的问题是只检查了 ActiveRecord (field_name) 验证的直接祖先......并且 ConcreteClass 的实例甚至没有验证?当我尝试手动调用它们时的方法,并且我的对象仅通过部分验证保存。

有什么方法可以调用我所有 ActiveRecord 子类的验证方法吗?

4

1 回答 1

0

的语法validate错误,后面不应该有分号。

class ConcreteClass < OtherAbstractClass
   validate :field_name, :numericality => { :only_integer => true }
   validate :other_field, :numericality => { :only_integer => true }
   validate :third_field, :numericality => { :only_integer => true }

   # other code
end
于 2013-04-22T15:58:57.673 回答