0

這裏是我的STI車型:Rails 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正在嘗試使用athlete_id而不是user_id ......不太確定我在這裏做錯了什麼......任何建議都會很棒!

回答

0

我不知道你爲什麼有一個UserSports表。您可以爲用戶或運動使用外鍵,具體取決於他們之間的關係。

用戶模型需要與運動模型指定的關係,反之亦然。對

的更多信息是在這裏:http://guides.rubyonrails.org/association_basics.html#the-has_many-association

這是有道理的,它試圖拉,而不是USER_ID的athlete_id,因爲你是運動員對象上調用。

作爲便箋:有沒有必要寫Athlete.all.last - 你只需要寫Athlete.last