2011-08-15 11 views
0

MongoMapper::Documentを持つすべてのモデルのクラス名を簡単に取得する方法を知っている人はいますか?MongoMapper:すべてのモデルを取得

MongoMapperクラスは、ActiveRecord::Base.subclassesと等価ではありません。

私が思いつくのは、MongoMapper.database.collection_namesObjectSpaceハックです。

さらに複雑ですが、app/modelsフォルダにモジュール(サブフォルダ)があります。したがって、class DS::Thingyは私のapps/models/ds/thingy.rbにあります。すべてのモデルの配列を返す、その後

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

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

MongoModels :::どのようなものについて

答えて

2

MongoMapperのdocument.rbはありません:

included do 
    extend Plugins 
    extend Translation 
end 

だから、あなたはそれを複製する必要がある場合があります。

+0

私はそれが好きです。私はそれを少し変更しますが、基本的な考えは良いものです、ありがとう! – Dave

関連する問題