如何从Ruby中的抽象父类中确定子类名

时间:2014-05-09 19:58:11

标签: ruby-on-rails ruby abstract-class

我正在创建4个ActiveRecord模型,这些模型都继承自同一个基类。目前,4个模型中的每一个都具有如下定义的属于关系:

belongs_to :parent, :class_name => 'ChildClass1'

我想把它带到基类中,其中包含以下内容:

belongs_to :parent, :class_name => self.class_name

关于如何做到这一点的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以尝试使用inherited挂钩:

class BaseClass
  def self.inherited(child_class)
    child_class.class_eval do
      belongs_to :parent, :class_name => child_class.name
    end
    super
  end
end