Ассоциация по нескольким столбцам - PullRequest
0 голосов
/ 06 октября 2018

Допустим, у меня есть футбольный матч, в котором будут участвовать две команды, одна из них - "домашняя команда", а другая - "команда гостей".

Итак, в БД таблица "матчей" у меня есть.:

home_team_id - integer column
away_team_id - integer column

В классе Match Scopes:

belongs_to :team_home, foreign_key: :home_team_id, class_name: 'Team'
belongs_to :team_away, foreign_key: :away_team_id, class_name: 'Team'

Какая ассоциация corrent должна быть добавлена ​​в класс Team, чтобы я мог получить все совпадения для команды, как дома, так и вне матчей

1 Ответ

0 голосов
/ 06 октября 2018

это одно из возможных решений

class Team < ActiveRecord::Base

  has_many :home_matches, class_name: "Match", foreign_key: "home_team_id"
  has_many :away_matches, class_name: "Match", foreign_key: "away_team_id"

  def myMatches
    Match.where("home_team_id = ? OR away_team_id = ?", self.id, self.id)
  end

end

class Match  < ActiveRecord::Base
  belongs_to :home_team, class_name: "Team", foreign_key: "home_team_id"
  belongs_to :away_team, class_name: "Team", foreign_key: "away_team_id"
end
...