2014-03-25 166 views
0

我有一個繼承自另一個類的類。超類的設置如下:從超類對象訪問子類的實例方法

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 

,如果我有「的創造者:: BaseResource」的情況下,有一個名爲DB列「 resource_class「,其中包含」Resource :: HypervisorGroup「,使其知道它的子類,我希望能夠說object.request_attributes並返回」超級「,在這個例子中。

顯然,代碼遠比這更復雜,但這就是我想要完成的要點。可能嗎?謝謝。

+0

'object'指的是什麼'object.request_attributes '? 'Creator :: BaseResource'或'Resource :: HypervisorGroup'的對象 –

回答

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(:創建,真正的),以獲得所謂的超類方法