Mongoid:has_many与别名的关系

时间:2013-03-12 02:05:04

标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid

背景:我有一个团队模型,其中有很多玩家,允许一个人调用

@team.players 

并收到一个Mongoid :: Relations :: Targets :: Enumerable玩家列表。

目标:我还希望能够检索团队中特定位置的玩家列表。例如,如果用户向他的团队添加投手,我就可以打电话 @team.pitchers返回一个可枚举的投手列表。关于如何设置的任何想法?

1 个答案:

答案 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