我有3个型号:
地区,社会,会员 - 他们是这样的: 地区有许多社团和社会有很多会员
我如何获得与地区相关的成员数量 - 比如说Region1有100个成员(每个成员都在他们自己的社团中)。
我很确定我需要一个范围...
THX!
答案 0 :(得分:0)
您可以在这里使用has_many :through
关联,如下所示:
class Region < ActiveRecord::Base
has_many :societies
has_many :members, through: :societies
end
class Society < ActiveRecord::Base
belongs_to :region
has_many :members
end
class Member < ActiveRecord::Base
belongs_to :society
end
现在,您可以执行@region.members.count
之类的操作来获取某个区域的成员总数。
答案 1 :(得分:0)
我不认为这是最快的方法,但这应该适用于您当前的设置:
Region.first.societies.inject(0){ |result,s| result += s.members.count }