먼저이 만들 듯 의미 :복수의 ActiveRecord`belongs_to`가 같은 클래스를 가리키는 것이 괜찮습니까? 에서, 두 팀 스포츠 이벤트를 연결에서
class Event
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
: 나는 내가 활성 기록 모델에서 그를 연결 얼마나 고민하고 그러나
events
- id:integer
- integer:home_team_id
- integer:away_team_id
teams
- integer:id
- string:name
그게 최선의 해결책입니까?
similar question에 대한 응답에서 단일 테이블 상속을 가리킨 다음 나중에 다형성 연결을 발견했습니다. 어느 쪽도이 협회와 맞지 않는 것 같았다. 아마도 나는이 잘못을보고 있습니다.하지만 팀이 홈 팀과 원정 팀으로 서브 클래 싱 할 필요는 없습니다. 구별은 게임이 진행되는 곳이기 때문입니다. 내가 단일 테이블 상속을했다면 각 팀이 이벤트에 속하는 것을 원하지 않을 것입니다.
# app/models/event.rb
class Event < ActiveRecord::Base
belongs_to :home_team
belongs_to :away_team
end
# app/models/team.rb
class Team < ActiveRecord::Base
has_many :teams
end
# app/models/home_team.rb
class HomeTeam < Team
end
# app/models/away_team.rb
class AwayTeam < Team
end
내가 원하는 것 때문에 너무 많은 작업처럼 보였습니다.
나는 또한 has_many 연관을 생각했지만 2 개의 팀만 필요하기 때문에 2 개의 팀처럼 보이지만 두 팀은 하나의 이벤트에 속하지 않습니다.
event_teams
- integer:event_id
- integer:team_id
- boolean:is_home
이러한 연관성을 활성 레코드로 만들기위한보다 의미 론적 방법이 있습니까? 아니면 이러한 솔루션 중 하나가 최선의 선택입니까?
감사합니다.
확인해 주셔서 감사합니다. – ethyreal