私は長い間これに頭を悩ませてきました。私のアプローチが正しいかどうか、またはmongoidを使用してそれが不可能かどうかはわかりません。だから、それ以上の苦労なしに、ここに問題があります:
私は次の2つのモデルを持っています:
def user
embeds_many :needs, :class_name => "Property"
embeds_many :skills, :class_name => "Property"
end
def property
end
もちろん、これらのモデルには両方とも他のコードがありますが、簡潔にするためにそれをスキップしました。この構造を使用すると、ユーザーモデルに埋め込まれた「ニーズ」と「スキル」として「プロパティ」データにアクセス/追加できます。このようなものは完璧に機能します
User.first.update_attributes(skills: [Property.first])
問題は、このようなものが機能しないことです。
User.first.skills.push(Property.first)
User.first.skills << Property.first
エラーはありません。上記のステートメントは両方とも、コンソールでtrueを返します。ただし、値はDBに保持されません。
基本的に、ユーザーモデルから独立して維持/作成できるプロパティモデルが必要です。そのため、プロパティの「embedded_in」がコードにありません。
問題は、私はそれを正しくやっているかということです。それとも、これらのモデルの設計について私が取り組むべき別の方法がありますか?