2014-06-21 33 views
2

A army具有platoons。每個platoonsquadrons。每個squadronsoldiersRails 4通過has_many獲得計數,多個級別

給定一個army的ID,我該如何計算其中有多少名士兵?這是針對Rails 4的,對於Rails 3來說,似乎沒有使用最新的Active Record方法。

@army = Army.find(:id) 

@army.platoons # This will return all platoons. 

@armay.platoons.squadrons # Error: undefined method 'squadrons' for #<Platoon::ActiveRecord_Associations_CollectionProxy:0x007ff6f7752380> 
+0

你的意思是「軍隊」有多少個「排」而不是「中隊」?請檢查您的問題中的名稱,它們看起來像是一團糟。 –

+0

修正了一個錯誤。感謝您指出Tamer –

回答

6

在你的軍隊模型,你需要:

has_many :platoons 
has_many :squadrons, through: :platoons 
has_many soldiers, through: :squadrons 

現在你可以使用。

@army.soldiers.count