シンプルモデル:Mongoid、references_oneアソシエーション(およびそれ以降のアソシエーション)を介してorder_byする方法は?
class hat
embedded_in :owner
field :color
end
class owner
embedds_one :hat
referenced_in :house
field :name
end
class house
references_one :owner
field :number
end
だから単に置く、我々は所有者に関連付けられている家のコレクションを持っている、と所有者が色の帽子を持つことができます。
私は単に彼らの数で家を並べ替えることができます。
House.all.order_by([[ :number, :asc ]])
しかし、私が欲しいのは、理想的に私が書きたい、その所有者の名前で、家を注文されています
House.all.order_by([[ :'owner.name', :asc ]])
しかし、それは動作しません...
また、私は所有者の帽子の色で家を並べ替えることができるようにしたい
House.all.order_by([[ :'owner.hat.color', :asc ]])
私は、可能であれば、すべてを書き換えることなく、これを達成することができますどのように任意のアイデアが:)
おかげ
アレックス
私はよくそれは私が非正規化するデータを持っており、中に帽子の色をコピーします:)私のシステムでは、私のために可能であるには余りにも多くの家をつもりはない、見ます私の家...私は、私の帽子の色が最新のものではないという結果を残す必要があります... – Alex
別のコレクションに家主を保管する必要がありますか?住宅に埋め込まれたオーナーやオーナーに埋め込まれた帽子を保管することができます。 – Hck