2010-03-13 6 views
1

저는 레일을 처음 접했고 주자 공연을 추적하는 간단한 데이터베이스로 현지 고등학교 트랙 팀을 돕기 위해 자원했습니다. 지금은 Runners, Race_Data, Races의 세 가지 모델이 있습니다. 나는 다음과 같은 연관이있다.ActiveRecord Associations 질문

Runners have_many Race_Data 
Races have_many Race_Data 

는 또한 협회 Race_Data을 통해 주자 Have_Many 경주를 만들고 싶지만, 내가 그린 그림에 내 모습으로, 이미 경주에 Race_data에서 하나의 관계에 많은있다. 여러 Race_Data와 Race_Data를 가진 Runners가 하나의 Race를 갖는 조합은 Runners와 Races 간의 Many_to_Many 관계를 암시합니까?

답변

1

설명하는 관계가 암시되어 있지만 필요한 경우보다 복잡한 코드가 사용됩니다. 당신의 큰 응답

bob = Runner.new(:name=>'Bob') 
joe = Runner.new(:name=>'Joe') 
race = Race.new(:race_date=>'20100313') 
race.entries.create(:runner=>joe, :position=>1) 
race.entries.create(:runner=>bob, :position=>2) 
bob.races.all #=> [#<Race id: 1, race_date: "2010-03-13"] 
bob.entries.all #=> => [#<Entry id: 2, runner_id: 1, race_id: 1, position: 2] 
+0

마이크, 감사 : 나는 당신이 뭔가 더 같은 물건을 할 충분해야

class Runner < ActiveRecord::Base has_many :entries has_many :races, :through => :entries end class Race < ActiveRecord::Base has_many :entries has_many :runners, :through => :entries end class Entry < ActiveRecord::Base # I suggest this is a more expressive name than "Race_Data" belongs_to :runner belongs_to :race end 

같은 원하는 생각합니다. 또한 race_data 대신에 엔트리를 사용하는 것에 대한 훌륭한 제안. 짐 – Mutuelinvestor

관련 문제