2011-08-15 74 views
0

有誰知道一個簡單的方法來獲取所有包含MongoMapper::Document的模型的類名嗎?MongoMapper:獲取所有模型

MongoMapper類似乎沒有相應的ActiveRecord::Base.subclasses

我能拿出的最好的是使用MongoMapper.database.collection_names和一些ObjectSpace黑客。

更復雜的是我有app/models文件夾中的模塊(子文件夾)。所以,class DS::Thingy在我的apps/models/ds/thingy.rb

回答

2

如何像:

class MongoModels 
    def self.all 
    @@models ||= [] 
    end 
end 

module MongoMapper 
    module Document 
    def self.included(klass) 
     MongoModels.all << klass 
    end 
    end 
end 

然後MongoModels ::都將返回模型的數組。

MongoMapper的document.rb作用:

included do 
    extend Plugins 
    extend Translation 
end 

所以,你可能需要複製這一點。

+0

很酷,是的,我喜歡它。我會稍微修改一下,但基本的想法很好,謝謝! – Dave

相關問題