簡體   English   中英

Rails 3.如何設置用戶模型以充當不同角色?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM