Модель рельсового соответствия - PullRequest
0 голосов
/ 13 декабря 2011

В моем приложении Rails есть модель Match и Team.

Матч состоит из двух команд team1 и team2. Как настроить мою модель Team, чтобы она имела атрибут matches, содержащий совпадения, когда команда team1 и команда team2?

Примечание: я бы хотел использовать его как любую ассоциацию Rails, например, matches.delete_all.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Есть две ассоциации.Я использовал home_team и away_team вместо team1 и team2:

class Match
  belongs_to :home_team, :class => 'Team', :foreign_key => 'home_team_id'
  belongs_to :away_team, :class => 'Team', :foreign_key => 'away_team_id'

class Team
  has_many :home_matches, :class_name => 'Match', :foreign_key => 'home_team_id'
  has_many :away_matches, :class_name => 'Match', :foreign_key => 'away_team_id'

Чтобы удалить все совпадения для команды, вам нужно удалить оба связанных совпадения.В team.rb:

def delete_all_matches
  home_matches.delete_all
  away_matches.delete_all
end
0 голосов
/ 11 июня 2013

проблема с этим подходом в том, что вы не сможете получить доступ к команде через матч, например "match.home_team"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...