埋め込みモデルをクエリすると、埋め込みモデルのインスタンスを含む親レコードがたくさんあるにもかかわらず、レコードが返されません。
Label
に組み込まれた2 つのモデルがありますBand
。
class Band
include Mongoid::Document
embeds_one :label
end
class Label
include Mongoid::Document
field :name, type: String
embedded_in :band
end
Band ( など) を問題なくクエリできますがBand.all
、Band.find
Label をクエリしても何も返されません。例えば:
ラベルが埋め込まれたバンドを作成し、保存します。
> b = Band.create
=> #<Band _id: 516cff525543d8842e000008, _type: nil>
> b.build_label name: "new label"
=> #<Label _id: 516cff5a5543d8842e000009, _type: nil, name: "new label">
> b.save
=> true
次に、Band モデルにクエリを実行すると、すべて問題ありません。
> Band.all.to_a
=> [#<Band _id: 516cff525543d8842e000008, _type: nil>]
> Band.count
=> 1
> Band.first.label
=> #<Label _id: 516cff5a5543d8842e000009, _type: nil, name: "new label">
> Band.find "516cff525543d8842e000008"
=> #<Band _id: 516cff525543d8842e000008, _type: nil>
しかし、Label モデルにクエリを実行しても、何も表示されません!
> Label.all.to_a
=> []
> Label.count
=> 0
> Label.last
=> nil
> Label.first
=> nil
> Label.find "516cff5a5543d8842e000009" # this is the label id from Band
=> nil
私は、これが意図された動作ではないことをほぼ確信しています。このコードは、Mongoid ドキュメントの例から直接引用したものです: http://mongoid.org/en/mongoid/docs/relations.html#embeds_one
私は何が欠けていますか?