Каков наилучший способ достижения двух связей с activerecord?ActiveRecord имеет две ассоциации:
У меня есть модели Team и Game. Каждая команда будет иметь несколько игр @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
я хотел бы что-то вроде этого, но это, очевидно, не так, как belongs_to работ.
class Team < ActiveRecord::Base
has_many :games
end
class Game < ActiveRecord::Base
belongs_to :hosting_team
belongs_to :opposing_team
end
Мой желаемый ави будет выглядеть следующим образом.
@team.games # return all games home or away
@game.hosting_team # Team
@game.opposing_team # Team
Вы можете calrify отношение от модели и возможно, разместите свой db/schema.rb? – 2010-11-28 19:48:44
Спасибо. Я редактировал вопрос. – jspooner 2010-11-28 20:13:36