army
有platoons
。每个platoon
都有squadrons
。每个squadron
都有soldiers
。
鉴于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 :(得分:7)
在您的军队模型中,您需要:
has_many :platoons
has_many :squadrons, through: :platoons
has_many soldiers, through: :squadrons
现在你可以使用。
@army.soldiers.count