2013-05-08 8 views
2

내 앱에는 Athletes ... 선수들은 많은 스포츠를 가질 수 있습니다.레일이 합류 테이블을 가지고 있습니다

선수 :

has_many :sports, :through => :user_sports 
has_one :primary_sport, conditions: ["user_sports.primary = ?", true], class_name: "Sport" 
has_many :user_sports 

UserSport :

class UserSport < ActiveRecord::Base 
    attr_accessible :athlete_id, :sport_id, :primary 

    belongs_to :athlete 
    belongs_to :sport 
end 

나는 스포츠 개체 대신 user_sport 개체로 primary_sport을 철수 할 수 있도록 노력하고 있습니다.

답변

4

스포츠 개체를 가져 왔으므로 user_sports를 통해 user_sports를 통해 primary_sport 개체를 가져와야합니다.

has_one :primary_sport, :through => :user_sports, conditions: ["user_sports.primary = ?", true], class_name: "Sport"