背景:我有一个团队模型,其中有很多玩家,允许一个人调用
@team.players
并收到一个Mongoid :: Relations :: Targets :: Enumerable玩家列表。
目标:我还希望能够检索团队中特定位置的玩家列表。例如,如果用户向他的团队添加投手,我就可以打电话
@team.pitchers
返回一个可枚举的投手列表。关于如何设置的任何想法?
答案 0 :(得分:1)
不能将条件放在mongoid的has_many中。
我可以想到这样做的两种方法是在玩家中设置范围并使用@ team.players.pitchers打电话
Class Player
scope :pitchers, where(:position => "pitcher")
end
或在团队中定义方法
Class Team
def pitchers
self.players.where(:position => "pitcher")
end
end