チームに関連してゲームをモデル化するための最良の方法を見つけようとしています。
最終的な目標は、次のようなものを呼び出せるようにすることです。
@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