35

Railsアソシエーションに関する初心者向けの質問です。

バグ モデルとステータス モデルがあります。ステータスは、基本的にキーと値のペア テーブルです。利用可能な選択肢の中で、Bug has_one Status が最も理にかなっていると思います。ただし、これによる

コンテンツは ContentTemplate に属しています。戻って、私が問題をどのように説明したかを見てください。それが機能することがわかります。belongs_to を使用すると、テーブルは外部キーの責任を負います。したがって、Content には content_template_id があります。ContentTemplate には何も必要ありません。勝手に指せます。終わり。

Bug belongs_to Status の方が適切です (Bug は外部キーを取得する必要があるため)。意味的には、彼の例は理にかなっていますが、私の例は意味がありません。これは、この状況で奇妙に見える単なるレールの癖ですか、それとも私が何かを理解していない/間違っているのでしょうか?

4

4 に答える 4

2

バグとステータスの関係について正確に説明していませんが、次のいずれかに関心があると思います。

  • 1対多:この場合has_many、Bugクラスとbelongs_toStatusクラスに存在する必要があります。
  • 1対1:この場合has_one、Bugクラスとbelongs_toStatusクラスに存在する必要があります。

どちらの場合も、ステータスには外部キーが含まれます。2番目のケースでは、1対1の関係が実際には非対称であるという事実のために、言い回しは少し奇妙です(片側にのみFKがあるはずです)。

于 2009-05-22T21:52:33.513 に答える