1

Deviseを使用して認証がすでに設定されているRailsアプリがあります。CanCanとRole_Modelを追加しています。能力を追加するのは簡単なようです。ただし、ユーザーの役割をどこに保存するかはわかりません。するべきか:

  1. ロールのユーザーデータベーステーブルに列を追加しますか?

  2. roleとrole_user用に別々のテーブルを追加しますか?

  3. どこかに役割を追加しますか?

4

1 に答える 1

2

これは、アプリケーションでロールがどのように実装されるかによって異なります。

  1. ロールが継承される場合、たとえばadmin<< 、つまり管理者がすべてを実行でき、(など)できる場合は、共通のユーザーモデルに単一のフィールドのみを追加することをお勧めしregistered userます。guestreg. userguestrole

  2. アプリの「アクション」が権限を継承しない特別な役割に関連付けられている場合(上記とは異なり)、つまり、アプリケーションとの一般的なやり取りを行うために管理者に複数の役割が必要な場合(ゲストのように)、user_id, role_idペアが設定された結合テーブル。

私は個人的に最初のオプションを好みます。

于 2012-05-11T18:43:32.120 に答える