Rails:主要是has_one /有时has_many关系

时间:2012-12-10 20:03:34

标签: ruby-on-rails

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

2 个答案:

答案 0 :(得分:1)

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

  1. 如果您只需要在联接表中存储cover_idcolor_id,请使用加入表,这样您就可以使用has_and_belongs_to_many来定义你的协会。使用此选项,您将必须创建连接表。

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

答案 1 :(得分:0)

封面has_many :colors是最好的方式,即使只有一个案例需要它。