2
  • 管理者 = 完全な管理。CRUD の教師と生徒のアカウント。最小限のフィールド セット。
  • 教師 = 自分のアカウントの読み取り/更新。自分の学生アカウントを読む。よりユニークな分野。
  • 学生 = 自分のアカウントの読み取り/更新。より多くのユニークなフィールド。

認証 - Devise 認証 - CanCan、Rolify

ロールと能力を設定するために、Devise に CanCan と Rolify を組み合わせた単一の User モデルがあります。これは問題なく機能しますが、以下の最初の要件のために複雑になり始めます。これらのアカウントは非常に異なるフィールド セットと能力を持っているため、「役割」がこれらのアカウントを区別するための最良の方法であるかどうかはわかりません。

3 種類のユーザーに対して異なる Devise モデルを用意したほうがよいでしょうか? (これは 2 番目の要件によって複雑になります。) それとも、現在行っているように、すべてのユーザーを 1 つのモデルに保持し、役割と能力を割り当てるのがベスト プラクティスですか?

要件:

  • 異なるユーザー タイプには、そのユーザー タイプに固有の (必須の) フィールドがいくつかあります (つまり、生徒にはparent_name があり、教師にはありません)。
  • 統一されたログインフォームが必要で、ログイン資格情報からユーザータイプを検出し、これに基づいてユーザーをリダイレクトする必要があります。

これらの方法のいずれかを達成するための詳細に関して、ここでいくつかの回答を見てきましたが、どの方法が私のアプリケーションにより適しているかについてのアドバイスを探しています。Deviseに入れすぎていませんか?認証フレームワークにすぎないことを認識しています。個人属性用に別の User モデルを用意する必要がありますか?

あなたが言うことができないかのように-私はこれに不慣れで、まだ概念を理解しようとしています.

4

1 に答える 1

0

1 つの提案は、Devise で物事をできるだけシンプルに保ち、User モデルの単一の文字列フィールドでロールを管理することです。次に、認証を確認するフィールドが 1 つだけあり、Rails のヘルパー (belongs_to など) で簡単にアクセスできるように、教師と生徒が必要とする他の属性用に 2 つの別のモデルを作成できます。

于 2013-07-20T22:49:16.120 に答える