Ich versuche, eine has_many through
Beziehung mit mehreren Quellen zu erstellen.has_many durch mehrere Quellen
Zum Beispiel hat ein Spiel eine home_team
und away_team
und ein Turnier hat mehrere Spiele.
Was ist der beste Weg, um alle Teams in das Turnier mit einer Beziehung has_many durch Spiele zu bekommen.
Im Moment sieht mein Code wie folgt aus:
class Tournament
has_many :teams, :through => :games, :source => :home_team, :uniq => true
end
aber ich möchte einen Weg es wie machen handeln:
class Tournament
has_many :teams, :through => :games, :source => [:home_team, :away_team], :uniq => true
end
EDIT: Das viele zu viele Beziehung ist nicht mein Problem. Gibt es einen guten Weg, um alle Mannschaften in das Turnier zu bekommen und die Struktur wie folgt zu übernehmen.
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
Gibt es eine Möglichkeit Tournament.teams
zu tun?
hatte ein ähnliches Problem und schließlich die Änderung meines Schema um ihn zu arbeiten, aber eine Option, die ich an war sah eine Methode '.merge' http: // Stackoverflow.com/questions/11486027/merge-results-from-two-hat-viele-associations-with-the-same-model Edit: Denken Sie daran mehr, ich wette die Schienen Weg, es zu tun ist Single-Table-Erbe, wo zu Hause und Auswärtsspiele haben eine abstrakte Elternklasse "Game", die die Join-Tabelle bereitstellt. Ich werde das nächste Mal versuchen :) – thebenedict