Как лучше всего добиться ассоциации has two с activerecord?
У меня есть модели Команды и Игры. У каждой команды будет_много игр @ team.games
. В игре будут две команды @ game.hosting_team
и @ game.opposing_team
.
Я начал с двух ассоциаций own_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
Я бы хотел что-то подобное, но это явно не Не так, как работает own_to.
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