我有3個模型,但該關聯有點棘手。Rails模型關聯的問題
首先我得到了用戶,對於2種不同類型的用戶,我有2種不同的配置文件模型,即Pteacher和Pstudent。
事情也是每個Pteacher有1 Pstudent。
所以我做了這樣的模型;
class User < ActiveRecord::Base
validates_uniqueness_of :uname
has_many :pteachers
has_many :pstudents
end
class Pteacher < ActiveRecord::Base
has_one :pstudent
belongs_to :user
end
class Pstudent < ActiveRecord::Base
has_one :pteacher
belongs_to :user
end
現在,如果我的經歷,首先選擇用戶不是選擇Pteacher不是像User.pteacher.pstudent選擇Pstudent,它給了我無方法錯誤。
但
如果我選擇Pteacher直接,不是我可以Pteacher.pstudent選擇Pstudent。
的問題是我想通過User=>Pteacher=>Pstudent
有沒有辦法來實現這一目標?
順便說一下,我發現如果我從用戶創建它,我無法達到教師的任何方法。例如,如果我寫入Rails控制檯;
user = User.first #Which is a teacher
user.pteachers #This line gives me all the info about that users pteacher
#now funny part
pt = user.pteacher #this works too as now i have pt as a Pteacher which have all the data i want
pt.id #fails???
pt.name #fails???
pt.pstudent #fails???
pt #writes all info about pteacher which has id and name
has_many應該是複數這裏不應該嗎?如果你只是做User.pteacher會發生什麼? – re5et 2011-02-08 12:38:43
它似乎工作。事情是一些用戶是老師,其中一些是學生。所以如果用戶是學生而不是User.pteacher返回一個空數組,但如果用戶是一名教師而不是User.pteacher返回其配置文件 – gkaykck 2011-02-08 13:01:13