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

Posted

技术标签:

【中文标题】如何通过rails中的关联定义has_many【英文标题】:How to define has_many through via through association in rails 【发布时间】:2012-08-23 06:00:19 【问题描述】:

考虑我有名为 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】:
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

【讨论】:

以上是关于如何通过rails中的关联定义has_many的主要内容,如果未能解决你的问题,请参考以下文章

如何将记录添加到has_many:通过rails中的关联

通过 Rails 5 中的另一个模型继承关联

如何在has_many中获取模型的属性:通过Rails 5中的关联

了解 Rails 控制器 - 通过关联模型的实例变量查看连接

如何在 Rails 中观察新的或破坏的关联

Rails has_many,如何实现嵌套关联?