2

背景:我有一个 Team 模型,它 has_many Players,它允许一个人打电话

@team.players 

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

目标:我还希望能够检索球队特定位置的球员名单。例如,如果用户将投手添加到他的团队,我将能够调用 @team.pitchers以返回可枚举的投手列表。关于如何设置的任何想法?

4

1 回答 1

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
于 2013-03-12T07:15:49.900 回答