ActiveRecord имеет две ассоциации

Как лучше всего добиться ассоциации 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
5
задан jspooner 28 November 2010 в 20:13
поделиться