这可能是一个新手问题,但我无法找出最佳解决方案。我有一个Color
模型和一个Cover
模型。大多数时候,一个封面has_one :color
。也许一百分之一,封面has_many :colors
。我必须has_many :through
在两个模型之间实现关联吗?似乎是多余的。定义这种关系的最佳实践是什么?
问问题
108 次
2 回答
1
我认为你应该涵盖一般情况,当Cover has_many :colors
. 所以这是一个多对多的关系。在这种情况下,您将有 2 个选项:
使用join table,如果你只需要在连接表中存储
cover_id
和color_id
,那么你将使用它has_and_belongs_to_many
来定义你的关联。使用此选项,您将必须创建连接表。使用join model,如果您不仅需要存储
cover_id
andcolor_id
,还需要存储其他属性,并且您需要进行一些计算,所以您必须使用has_many :through
来定义您的关联。使用此选项,您将必须创建新模型。
于 2012-12-10T21:08:41.103 回答
0
掩护has_many :colors
是最好的方法,即使只有一个案例需要它。
于 2012-12-10T20:21:39.793 回答