如何通过rails中的关联来定义has_many

时间:2012-08-23 06:00:19

标签: ruby-on-rails associations model-associations

考虑我有一个名为A,B,C,D的轨道模型,其关系如下。

A has_many B
B belongs_to C
A has_many C via B
C belongs_to D

现在,定义以下关联的rails方式应该是什么?

A has_many D via C

1 个答案:

答案 0 :(得分:0)

A has_many Bs
A has_many Cs, :through => Bs
(i.e B has_many Cs)
C belongs_to :D

A has_many Ds :through => Bs

SELECT COUNT(*) FROM `Ds` INNER JOIN `Cs` ON `Ds`.`id` = `Cs`.`D_id` INNER JOIN `Bs` ON `Cs`.`B_id` = `Bs`.`id` WHERE `Bs`.`A_i