0

这可能是一个新手问题,但我无法找出最佳解决方案。我有一个Color模型和一个Cover模型。大多数时候,一个封面has_one :color。也许一百分之一,封面has_many :colors。我必须has_many :through在两个模型之间实现关联吗?似乎是多余的。定义这种关系的最佳实践是什么?

4

2 回答 2

1

我认为你应该涵盖一般情况,当Cover has_many :colors. 所以这是一个多对多的关系。在这种情况下,您将有 2 个选项:

  1. 使用join table,如果你只需要在连接表中存储cover_idcolor_id,那么你将使用它has_and_belongs_to_many来定义你的关联。使用此选项,您将必须创建连接表。

  2. 使用join model,如果您不仅需要存储cover_idand color_id,还需要存储其他属性,并且您需要进行一些计算,所以您必须使用has_many :through来定义您的关联。使用此选项,您将必须创建新模型。

于 2012-12-10T21:08:41.103 回答
0

掩护has_many :colors是最好的方法,即使只有一个案例需要它。

于 2012-12-10T20:21:39.793 回答