我有一个抽象模型,其中包含很多实现子模型。我希望能够在抽象模型中定义一些函数,这些函数在子模型上调用时依赖于子模型自己的定义。在 Ruby on Rails 中这样的事情是可能的吗?
示例,其中长度属性在子模型中定义:
class Animal
validates_inclusion_of :length, :in => MIN_LENGTH..MAX_LENGTH
end
class Elephant < Animal
MIN_LENGTH = 5
MAX_LENGTH = 20
end
然后当我去 Elephant.new.save !我希望它使用 Elephant 的常量运行验证。
我想这样做的原因是因为这样的验证对所有子模型都是通用的,唯一不同的是常量的值。
当我尝试这样做时,或者使用小写的方法时,在这两种情况下,我都会收到未定义值的名称错误。
在 Rails 中这样的事情可能吗?