2013-03-12 35 views
2

背景:我有玩家的has_many團隊模式,它允許一個叫Mongoid:用別名的has_many關係

@team.players 

,並獲得Mongoid ::關係::目標::的可枚舉列表球員回來了。目標:我還希望能夠檢索隊伍中特定位置的隊員名單。例如,如果用戶添加一個投手給他的球隊,我可以撥打 @team.pitchers返回Enumerable投手列表。任何想法如何設置?

回答

1

不能把條件放在has_many中的mongoid中。

兩種方式我能想到這樣做的是使用@ team.players.pitchers

Class Player 
    scope :pitchers, where(:position => "pitcher") 
end 

或定義團隊的方法設定一個範圍,球員和呼叫

Class Team 

    def pitchers 
    self.players.where(:position => "pitcher") 
    end 
end