2012-01-06 9 views
2

私は、様々なタイプの多くのおもちゃで、箱を持っている:mongoidを含む埋め込みドキュメントのサブクラスをクエリするにはどうすればよいですか?

class Box 
    embeds_many :toys 
end 

class Toy 
    field :name 
    embedded_in :box 
end 

class Car < Toy 
end 

class Doll < Toy 
end 

私はちょうど車を見つけるためにそれを照会しますか、私が欲しい、特定のボックスオブジェクトを発見した場合は?明らかに

が存在する場合、私はちょうどmongoid基準/ファインダに建て使用していることを、それぞれのおもちゃを反復してのものtoy.is_a? Carを抽出し、私は解決策を探していますができます。

答えて

2

これは良い質問です。幸いにもMongoidはそうあなただけの完全性のために、すべての

+1

ザッツ

Box.where('toys._type'=>'Car') 

によりボックス内の車を見つけることができるのシナリオ

のこれらの種類を処理するために、文書に_typeメタ属性を格納するために使用:すでに場合box.toys.where(_type: 'Car') '助けてくれてありがとう。 – masukomi

+0

そうです。 – RameshVel

関連する問題