这是我的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_id
和sport_id
...但是你运行了这个:
athlete = Athlete.all.last
athlete.sports
生成的SQL正在尝试使用athlete_id
而不是user_id
...不太确定我在这里做错了什么......任何建议都会很棒!
答案 0 :(得分:0)
我不确定为什么你有一个UserSports表。您可以只为User或Sport使用外键,具体取决于它们之间的关系。
用户模型需要与Sport模型指定关系,反之亦然。
有关详细信息,请访问:http://guides.rubyonrails.org/association_basics.html#the-has_many-association
因为你正在调用一个Athlete对象,所以它试图拉动athlete_id而不是user_id是有意义的。
作为旁注:没有必要写Athlete.all.last
- 您只需要写Athlete.last
。