2011-08-15 48 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

相关问题