[英]Unique IDs between Users and Admins with Devise Rails
我已經安裝了Devise並使用本教程中的選項1創建了用戶和管理員https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role
現在我需要一些幫助。 添加管理員時,它會創建一個不同的表,並且可能會出現管理員和普通用戶具有相同ID的情況。
那么我究竟如何從用戶和管理員那里獲取信息呢? 比方說,我想顯示所有用戶? 我是否必須遍歷users表然后遍歷admins表?
或者,如果我正在顯示帖子。 我如何知道要查找哪個表來獲取用戶或管理員信息?
我知道我可以在users表中添加一個角色列,但我想避免這種情況。
我希望這有道理哈哈
我強烈建議使用單表繼承(STI)。 您可以通過在users
表中添加一個名為type
的列和一個string
數據類型來創建STI,並創建一個admin
模型和一個normal_user
模型,兩個模型都將繼承devise
gem的user
模型。
class NormalUser < User
end
class Admin < User
end
type列是保留字,它將根據您創建的用戶類型保存NormalUser
或Admin
值。
要創建管理員,請使用Admin.create(...)
並創建普通用戶使用NormalUser.create(...)
,其中點是Admin
和NormalUser
的屬性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.