シンプルに見えますが、問題があります:
model A
belong_to :B
model B
has_many :A
database tables:
table A:
id,...,b_id
table B:
id,...
新しい A を作成しようとするとき、次のようにして (既存の) B を設定します: ab = B
「b を空白にすることはできません」というエラーが表示されます
シンプルに見えますが、問題があります:
model A
belong_to :B
model B
has_many :A
database tables:
table A:
id,...,b_id
table B:
id,...
新しい A を作成しようとするとき、次のようにして (既存の) B を設定します: ab = B
「b を空白にすることはできません」というエラーが表示されます
ab = B を実行する代わりに、a.b_id = B.id を実行します。
また、できるはずですnewA = B.as.build
(「as」は a の複数形です)。
もちろん、「A、a、B、b」の例は非常に紛らわしいです! 今後は、「顧客」と「注文」、「ブログ」と「投稿」、または意味のない不可解な文字以外を使用してください。
コレクションと親子関係がどのように機能するかを考えてください。提案されているように、関連する B の ID を A に追加できますが、代わり B.a[] = a
に、オブジェクト「B」の「a」コレクションに「a」を追加するものを指定することもできます。このようにして、関係はより直感的な方法で設定され、子オブジェクトではなく親オブジェクトに向けられます。