2012-05-11 22 views
1

我有一個使用Devise設置了身份驗證的Rails應用程序。我添加了CanCan和Role_Model。增加能力似乎很容易。不過,我不確定在哪裏存儲用戶的角色。我應該:在Rails中將用戶角色存儲在數據庫中的位置?使用CanCan,Devise和Role_Model

  1. 在用戶數據庫表中添加一列用於角色?

  2. 爲角色和role_user添加單獨的表或表?

  3. 在其他地方添加角色?

+1

用戶是否被允許爲一個角色,多個角色,還是隻是admin/non-admin – DVG

+0

允許用戶使用一個角色。但是,也許你可以解釋多角色設置的架構差異? –

回答

2

這取決於如何在您的應用程序中實施角色。

  1. 如果角色將被繼承,例如admin < registered user < guest,這意味着管理員能夠做的一切reg. userguest能夠(等等),那麼你可能希望只添加一個role在普通用戶模型上的字段。

  2. 如果您的應用中的「操作」綁定到不繼承權限的特殊角色(與上面不同),即您需要在管理員上有多個角色才能與應用進行一些常見交互),那麼你需要一個連接表,填入user_id, role_id對。

我個人比較喜歡第一個選項。

相關問題