我是否需要has_many的联接表:通过关联?

时间:2011-10-13 23:29:58

标签: ruby-on-rails associations has-many has-many-through

我之前只创建了一个has_and_belongs_to_many关联,它与has_many:through不同。对于has_many:通过关联,我需要一个连接表吗?实际协会如何运作?我需要索引吗?我找不到一个很棒的教程,有什么建议吗?

2 个答案:

答案 0 :(得分:7)

是的,你需要连接表。 这显示了如何:http://railscasts.com/episodes/47-two-many-to-many

这也可能有所帮助; has_many :through questions

顺便说一下,如果您需要搜索条件,这将有所帮助:Has many through associations with conditions

这是一个很好的例子,可以在Rails nested form with has_many :through, how to edit attributes of join model?编辑连接表的嵌套属性代码。

所有这些都是你可能想要做的事情:)

索引是可选的,也因db而异。 mySQL以前只支持1个。不确定是否已经改变。

答案 1 :(得分:1)

这取决于您希望如何使用has_many :through关系。有两种不同的情况(在guide to relations

中命名
  1. 对于n:m关系:指南中的例子是医生与患者约会。
  2. 对于1:n和另外1:n的关系:指南中的示例是1个文档有很多部分,1个部分有很多段落。
  3. 对于第一个,您需要连接表,您不需要索引。对于第二个,你不需要它们。