has_many through
複数のソースとの関係を作成しようとしています。
たとえば、ゲームにはhome_team
andaway_team
があり、トーナメントには複数のゲームがあります。
has_many スルー ゲーム リレーションを使用して、すべてのチームをトーナメントに参加させる最善の方法は何ですか。
現在、私のコードは次のようになっています。
class Tournament
has_many :teams, :through => :games, :source => :home_team, :uniq => true
end
しかし、私はそれを次のように動作させる方法が欲しい:
class Tournament
has_many :teams, :through => :games, :source => [:home_team, :away_team], :uniq => true
end
編集:多対多の関係は私の問題ではありません。次のような構造を想定して、すべてのチームをトーナメントに参加させる良い方法はありますか。
class Game
has_and_belongs_to_many :tournaments
belongs_to :home_team, :class_name => Team, :foreign_key => :home_team_id
belongs_to :away_team, :class_name => Team, :foreign_key => :away_team_id
end
class Tournament
has_and_belongs_to_many :games
end
方法はありますTournament.teams
か?