我有这样的模型:
class Manufacturer
has_many :models
end
class Model
belongs_to :manufacturer
has_many :widgets
end
class Widget
belongs_to :model
end
如何widget_count
在上定义方法Manufacturer
?即,属于该制造商的所有模型的所有小部件的总和。
例如,如果我有一个带有3个模型的制造商,并且每个模型都有3个小部件,那么我想要一个返回9的#widget_count
方法Manufacturer
。
这会起作用,但是我想知道是否有一种方法可以使用ActiveRecord来做到这一点:
manufactuer.models.map { |m| m.widgets.count }.sum
我要添加Engineersmnky在对该问题的评论中指出的答案,因为这正是我所追求的。
将此关联添加到Manufacturer
模型:
has_many :widgets, through: :models
本文中有更多信息:“嵌套的关联和Has_many:through,:source”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句