Ruby on rails 钢轨尺寸为“;“第三级”;成员

Ruby on rails 钢轨尺寸为“;“第三级”;成员,ruby-on-rails,Ruby On Rails,我有3种型号: 地区、社会、成员——它们是这样的: 这个地区有很多社会,社会有很多成员 我如何获得与区域相关的成员的规模——假设Region1有100个成员(每个成员都在各自的社会中) 我很确定我需要一个范围 谢谢 在这里,您可以使用一个has\u many:通过关联,如下所示: class Region < ActiveRecord::Base has_many :societies has_many :members, through: :societies end clas

我有3种型号:

地区、社会、成员——它们是这样的: 这个地区有很多社会,社会有很多成员

我如何获得与区域相关的成员的规模——假设Region1有100个成员(每个成员都在各自的社会中)

我很确定我需要一个范围


谢谢

在这里,您可以使用一个
has\u many:通过
关联,如下所示:

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
的操作来获取某个区域的成员总数。

我不认为这是最快的方法,但这应该适用于您当前的设置:

Region.first.societies.inject(0){ |result,s| result += s.members.count }

嗨,谢谢你,我已经在考虑走这条路了。不过,我还有一个问题……迁移呢?我是否需要添加任何新的列,如member_id或其他内容?再次感谢!在没有任何表格修改的情况下进行了尝试,令我非常惊讶的是,它确实有效。谢谢