2013-09-26 54 views
1

確定HABTM協會的總數我有兩個相關機型:通過CLASS_NAME

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 

似乎沒有工作。

有沒有辦法做到這一舉一動?

謝謝。

+0

等等!我剛剛重讀了我的第一篇文章 - 第二個模型應該說'has_and_belongs_to_many:facilities'。我現在編輯它 – GerryDevine

回答

0

不可以。FacilityPeople之間沒有單個關聯,您可以枚舉/計數。您已經設置了兩個單獨的關聯,儘管只能從一側訪問。您尚未提供任何方式參考People的關聯,因爲在People中沒有相應的HABTM參考Facility

您可以將您顯示的兩個關聯的大小相加,或者如果您擔心關聯中的重疊/重複,請枚舉/計數唯一的User引用。

+0

嗨,彼得。好的,這太遺憾了。我並不特別擔心重疊。除了上面定義的兩個人之外,我打算將設施模型擴展到許多不同類型的人,並且會有幾個場景,我想檢查是否存在與該設施相關的任何「人員」(因此希望有一種方法來這樣做是因爲我通過每個類中的class_name引用了實際的人員模型)。我想我可以寫一個快速輔助函數。謝謝你的幫助 – GerryDevine