1

シナリオは次のとおりです。IssueTypeモデルとIssueTypeColourモデルがあります。、IssueType has_one IssueTypeColourただし、IssueTypeColour必ずしもbelongs_to特定のIssueType;であるとは限りません。それは多くの異なるものに属することができますIssueType。つまり、多くIssueTypeの が同じ を持つことができますIssueTypeColour

このシナリオによれば、モデルに関連性を持たせ、モデルにhas_one関連性を持たせないことは理にかなっています。IssueTypebelongs_toIssueTypeColour

しかし、それは受け入れられますか?

4

2 に答える 2

3

その IssueTypeColor モデルが本当に必要かどうか疑問に思っています。 TypeColour 属性を IssueType に追加するだけです。

2 つのモデルを使用する場合、関係は実際には 1 対多であるため、次のものが必要になります。

IssueType :belongs_to ....
IssueTypeColour :has_many ...

このリンクをお勧めします:

http://guides.rubyonrails.org/association_basics.html

そこに詳細な説明があります。

于 2012-11-06T16:47:37.673 に答える
0

私にとっては大丈夫です。私のシナリオでは、1 つの航空会社を持つチケット モデルがありますが、その航空会社を持つ複数のチケットがある可能性があるため、航空会社はチケットに属していません。航空会社モデルに外部キー ticket_id を入れてこれを修正しました。したがって、チケット オブジェクトを取得すると、このチケットに関連付けられた航空会社をリクエストできます。しかし、航空会社のオブジェクトがある場合、関連付けはチケット オブジェクトの側からの一方向であるため、チケットをリクエストできません。その上、必要がないときに双方向の関連付けを確立するのは良い考えではないと思います。しかし、すべてのシナリオが同じというわけではありません。

これは移行ファイルです。

add_reference :airlines, :ticket, index: true
于 2016-02-21T16:46:41.013 に答える