我应该通过所有关系协会吗?

Should I give all my relations associations through?

为我的表之间的关系提供 :through 关联是否被认为是错误的形式?例如如果我有多个 show,每个都只有一个表演者,并且我想能够说出 aShow.performer 之类的话,是否有足够的理由建立 :through 协会?建立这个协会有不利的一面吗?

如果您的架构如您所指出的那样简单,我不确定您为什么需要 :through。相反,你会:

显示:

has_many :performers

表演者:

belongs_to :show

在此设计中,Performer 将 show_id 作为外键,而 Show 将没有指向 Performer 的外键。当你想做一些嵌套的事情时,:through 变得必要:

手指:

`belongs_to :performer`

表演者:

belongs_to :show
has_many: fingers

显示:

has_many :performers
has_many :fingers, through: :performers

这将允许您引用相关表演者的所有手指:Show.first().fingers,而不必先获得表演者。

实际上,这只是语法糖,可以消除关系中的所有工作。