2

背景:私は has_many Players というチーム モデルを持っています。

@team.players 

Mongoid::Relations::Targets::Enumerable プレイヤーのリストを受け取ります。

目的: チームの特定の位置にいるプレーヤーのリストも取得できるようにしたいと考えています。たとえば、ユーザーが自分のチームにピッチャーを追加した場合、呼び出し @team.pitchersてピッチャーの Enumerable リストを返すことができます。これを設定する方法についてのアイデアはありますか?

4

1 に答える 1

1

mongoid の has_many に条件を入れることはできません。

これを行う方法として考えられる 2 つの方法は、プレイヤーにスコープを設定し、@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 に答える