0
如果角色是一個STI表:如何處理主詳細STI
class Role< ActiveRecord::Base
self.inheritance_column= :role_type
end
和學生&輔導員繼承角色:
class Student< Role
end
class Counselor< Role
end
而且StudentDetail保持約一個學生的額外信息:
class StudentDetail< ActiveRecord::Base
belongs_to :student
end
而且用戶可以是學生和輔導員:
class User< ActiveRecord::Base
has_many :roles
has_one :student
has_one :counselor
end
和數量是StudentDetail列, 而ROLE_ID是StudentDetail列
是否有可能得到下面的語法來工作?
User.first.student.number
含義: 「如果角色表有一個學生,USER_ID == User.first.id然後User.first.student不爲空,如果StudentDetail已經ROLE_ID == Student.where(」 USER_ID =「? ,User.first.id).first.id,將「student」作爲StudentDetail記錄並獲取編號字段。「
well def number; self.try(:student_detail)。嘗試(:數);結束 會更加緩和。 我最終做了「has_one student_detail通過學生」 ,但爲method_missing +1。 – nurettin 2012-03-31 11:29:25