2011-03-08 235 views
0

有沒有辦法將「嵌套」嵌套模塊,以便在擴展另一個類或模塊時可以使用它們的所有方法?例如:擴展一個擴展類的模塊

class User 
    extend UserStats 
end 

module UserStats 

    module Current 
    def active 
     where('status = "active"') 
    end 
    end 

end 

我希望能夠延長UserStats(或用戶),使得在UserStats ::目前的方法是可用的作爲類方法對用戶開放。

我試着在UserStats中「擴展當前」,但似乎沒有工作。有沒有辦法做到這一點?

+0

當你說「似乎沒有工作」,你是什麼意思?你能給我們一個例子說明你如何使用它? – 2011-03-08 01:21:37

回答

4

爲什麼不只是extend UserStats::Current

+0

其實這將是罰款。我的情況的例子是一種元編程的老鼠窩,所以不是拼寫出來,而是重新編輯原始問題並將其標記爲答案。謝謝,我的道歉。 – 2011-03-08 01:30:04

+0

不需要道歉 - 我聽說這是一個學習和討論的地方! – 2011-03-08 02:36:07

1

你的意思是這樣的嗎?

module UserStats 

    def self.extended(klass) 
    klass.send(:extend, Current) 
    end 

    module Current 
    def active 
     puts "test" 
    end 
    end 

end 

class User 
    extend ::UserStats 
end 

puts User.active