Каков наилучший способ достижения двух связей с activerecord?
У меня есть модели команд и игр.Каждая команда будет иметь множество игр @team.games
.В игре будет две команды @game.hosting_team
и @game.opposing_team
.
. Я начал с двух belongs_to/has_one
ассоциаций, но тогда @team.games
вернул бы только их домашние игры.
Другой вариантЯ могу думать об использовании HABTM и использовании валидатора, чтобы гарантировать, что есть только записи.Единственное, чего не хватает, так это следить за хозяевами.Похоже, мне нужно иметь много через ассоциацию, но я не совсем уверен ...
Спасибо за вашу помощь.
Это пример того, как выглядят две ассоциации has_many.Проблема в том, что мне нужно было бы позвонить team.games
и team.opponents
, чтобы получить полный список их игр
class Team < ActiveRecord::Base
has_many :games
has_many :opponents, :class_name => "Team"#, :foreign_key => ""
end
class Game < ActiveRecord::Base
belongs_to :team, :class_name => "Team" #, :foreign_key => "team_id"
belongs_to :opponent, :class_name => "Team" #, :foreign_key => "opponent_id"
end
Я бы хотел что-то подобное, но, очевидно, это не так, как работает
class Team < ActiveRecord::Base
has_many :games
end
class Game < ActiveRecord::Base
belongs_to :hosting_team
belongs_to :opposing_team
end
Мой желаемый API будет выглядеть следующим образом.
@team.games # return all games home or away
@game.hosting_team # Team
@game.opposing_team # Team