星期五,2006 年 4 月 21 日

habtm 与 has_many :through

Posted by marcel

最近 ActiveRecord 关联代码受到极大的关注。引人注目的新增功能之一是多态关联,它已成为 1.1 版的一大亮点。在此喧嚣之中,有些人可能没有注意到,除 `has_and_belongs_to_many` 之外,还有一种增强的方式来完成多对多关联。

一段时间以来,人们一直在弃用 `has_and_belongs_to_many` 而转而设置两种 `has_many` 关联,以便获取完全关联模型的好处及随之而来的好处。借助 1.1 版新增的 `:through` 关联选项,双向 `has_many` 变得更加美妙。因此,如果有多种方法可以建立多对多关系,那么这些方法之间有什么区别,你应该采用哪一种方法?

乔希·萨瑟 一直在 探索 深入 研究关联代码,并利用 `habtm` 和 `has_many:through` 的逐点比较 从密林中脱颖而出,如果你愿意,这就好比这两种方法之间进行的一场舞蹈比赛。如果你还没有订阅,那么现在是 将其添加到你的 RSS 阅读器 的好时机。