我想寫一個方法,告訴我包含特定模塊的每個類。它看起來像這樣 -模塊何時包含在運行在rails中的Ruby類中?
def Rating.rateable_objects
rateable_objects = []
ObjectSpace.each_object(Class) do |c|
next unless c.include? Rateable
rateable_objects << c
end
rateable_objects
end
其中「應課差餉租」是我的模塊,我包括幾種型號。
我發現的是,如果我在啓動rails控制檯或運行服務器後立即調用它,此方法返回[]。但是,如果我首先實例化其中一個消費模型的實例,它將在結果中返回該模型。
那麼模塊何時包含?我在後面的過程中猜測,比他的應用程序啓動時。如果我在這個過程的早期無法獲得這些信息,那麼無論如何要完成這個任務?
我會認爲它會在包含模塊的模型被調用時加載。 – 2010-08-20 01:49:51