1
埋め込み埋め込みのような振る舞いをするモデルが必要です。例えば埋め込まれたドキュメントと埋め込まれていないドキュメントを同時に埋め込む
私が埋め込まれたこのモデルを保存する場合:
class MenuPosition
include Mongoid::Document
field :name, type: String
field :category, type: String
私はそれに
embedded_in :menu
を追加する必要があります。他の側では
、私はモデルにこの行を追加すると、埋め込まれていないとして、私はこのモデルを格納することはできませんが:
position = {
"name" => "pork",
"category" => "meal",
"portion" => 100
}
MenuPosition.create(position)
エラーメッセージ:
NoMethodError:
undefined method `new?' for nil:NilClass
は、私は一つのモデルを使用できます埋込み型ドキュメントと非埋め込み型ドキュメント
埋め込み型と非埋め込み型の両方の理由について説明できますか?あなたが望むものを達成するためには、この方法が可能であるとか推薦できないと思うので、別の方法があるかもしれません。 – Russell
商品に関する詳細情報(重量、サイズ、構造など)を持つ商品表を持っています。ユーザーは製品レコードを一度作成し、この情報を使用して製品注文を作成します。異なる製品オーダーは1つの製品を有することができ、ユーザーはすべての情報を2回置くことを望まない。 – demas
その場合、 'embeds_many'の代わりに' has_many'を使うことができます(あなたの例では 'Menu'はそれらを含むのではなく' MenuPositions'を多く参照するでしょうか? – Russell