通过class_name确定HABTM关联的总数

时间:2013-09-26 02:43:56

标签: ruby-on-rails associations has-and-belongs-to-many

我有两个相关的模型:

class Facility < ActiveRecord::Base
  has_and_belongs_to_many :investigators, class_name: "Person"
  has_and_belongs_to_many :technicians, class_name: "Person"
end

class Person < ActiveRecord::Base
  has_and_belongs_to_many :facilities
end

如果我实例化调查人员和技术人员,我可以使用例如与特定设施相关联的每个人的数量。

numtechs = myfacility.technicians.size
numinvests = myfacility.investigators.size 

等。但是,如何返回与设施相关的总人数。试图

numpeople = myfacility.people.size

似乎不起作用。

有没有办法一举做到这一点?

感谢。

1 个答案:

答案 0 :(得分:0)

没有。您可以枚举/计算FacilityPeople之间没有单一关联。您已经设置了两个单独的关联,尽管只能从一侧访问。您没有提供任何方式来引用People中的关联,因为Facility中没有对People的相应HABTM引用。

您可以将您显示的两个关联的大小相加,或者如果您担心关联中的重叠/重复,则枚举/计算唯一的User引用。