1

チームに関連してゲームをモデル化するための最良の方法を見つけようとしています。

最終的な目標は、次のようなものを呼び出せるようにすることです。

@game.winner
@game.loser
@team.games

最初の 2 つのリレーションは機能していますが、ゲームのリレーションは機能していません。has_many (以下を参照) をERROR: column games.team_id does not exist使用すると、 と同等のものを使用することで通常回避できるものを取得できますが、 と の:foreign_key => winner_id両方winner_idをチェックアウトするにはどうすればよいloser_idですか?

次のように、チーム モデルでメソッドを作成する唯一のオプションです。

def games
  won = Game.where(:winner => id)
  lost = Game.where(:loser => id)
  won + lost
end

これまでのところ、私がやっていることは次のとおりです。

class Game < ActiveRecord::Base
  has_one :winner, class_name: "Team"
  has_one :loser,  class_name: "Team"
end


class Team
  has_many :games
  # or something that actually works
end
4

1 に答える 1