访问子类'来自超类对象的实例方法

时间:2014-03-25 21:50:38

标签: ruby-on-rails ruby

我有一个继承自另一个类的类。超类的设置如下:

class Creator::BaseResource < Creator::Base
  def request_attributes(action = :create)
    "super"
  end
end

子类:

class Creator::Resource::HypervisorGroup < Creator::BaseResource
  def request_attributes(action = :create)
    "sub"
  end
end

现在,如果我有一个&#34; Creator :: BaseResource&#34;的实例,并且有一个名为&#34的DB列; resource_class&#34;其中包含&#34; Resource :: HypervisorGroup&#34;这让它知道它是一个子类,我希望能够说object.request_attributes并获得&#34; super&#34;在这个例子中返回。

显然,代码远比这复杂得多,但这是我想要实现的目标。可能吗?谢谢。

1 个答案:

答案 0 :(得分:0)

那是怎么回事:

class Creator::Resource::HypervisorGroup < Creator::BaseResource
  def request_attributes(action = :create, use_super=false)
    super and return if use_super
    "sub"
  end
end

然后,您可以调用object.request_attributes(:create,true)来获取名为

的超类方法
相关问题