![](/img/trans.png)
[英]Rails 3. How to setup Devise to look at the email column in a model that User inherited from?
[英]Rails 3. How to setup User model to act as different roles?
我為User模型設置了角色,現在,我只為users表提供了一個角色字符串列。 該值可以是管理員,銷售員,講師或學生。
現在,我有一個講師應該教的ScheduledSession模型。 我有一個utoror_id列,該列應該具有用戶表(具有指導者角色的用戶)中的ID。
那么如何在模型中設置關聯? 在User模型中添加has_many :scheduled_sessions
似乎不正確,因為如果角色是銷售人員或管理員,那感覺就不合適。 或在ScheduledSession模型中設置類似belongs_to :user, :as instructor
,但出現錯誤Unknown key :as
。
您將如何設置?
您要在ScheduledSession模型中將自己的歸屬設置設置為稍有不同。
belongs_to :instructor, :class_name => 'User, :foreign_key => 'user_id'
這使您可以引用ScheduledSession對象的instructor
,並使其指向User表中的實體。
如果您想追求一個基於角色的用戶,而每個用戶只有一個角色,則無法在用戶模型上擁有has_many
關系。 沒有它,您將無法檢索與用戶關聯的Scheduled_sessions。
一種替代方法是在此處使用“單表”繼承,這將允許您創建不具有SchededSessions的Admin用戶,但具有創建者的Admin用戶。 您仍將所有這些存儲在同一表中,但是ActiveRecord將使您更容易將它們分隔開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.