0

와 여기 내 STI 모델입니다 :레일 3 hasMany의를 통해이 STI

class User < ActiveRecord::Base 
end 

class Athlete < User 
    has_many :sports, :through => :user_sports 
    has_many :user_sports 
end 

class Coach < User 
end 

UserSports 테이블 user_idsport_id있다 ...하지만이 실행 생성

athlete = Athlete.all.last 
athlete.sports 

SQL을 user_id 대신 athlete_id을 사용하려고합니다 ... 내가 여기서 잘못하고있는 것이 확실하지 않습니다 ... 어떤 제안이 좋을 것입니다!

답변

0

나는 왜 당신이 UserSports 테이블을 가지고 있는지 모르겠습니다. 서로의 관계에 따라 사용자 또는 스포츠에 외래 키를 사용할 수 있습니다.

사용자 모델에는 스포츠 모델과의 특정 관계가 필요하며 그 반대도 마찬가지입니다. 그에

더 자세한 정보는 여기에 있습니다 : http://guides.rubyonrails.org/association_basics.html#the-has_many-association

그것은 당신이 선수 객체에 호출되기 때문에, 대신 USER_ID의 athlete_id를 끌어하려고한다는 의미가 있습니다.

보조 참고 사항 : Athlete.all.last을 작성할 필요가 없습니다. Athlete.last 만 작성하면됩니다.