Rails has_one с таблицей соединений
В моем приложении есть 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
Я пытаюсь быть в состоянии отодвинуть primary_sport
в качестве спортивного объекта вместо user_sport
объект.
1 ответ
Решение
Поскольку вы извлекаете свои спортивные объекты: через user_sports, вы должны извлекать свой объект primary_sport: также и через user_sports.
has_one :primary_sport, :through => :user_sports, conditions: ["user_sports.primary = ?", true], class_name: "Sport"