2017-05-30 10 views
-1

アプリケーションは3種類のユーザーで構成されています。管理者、クライアント、およびプロフェッショナル。3つの異なる役割と1つの場所でサインアップ/サインインするユーザーを作成するにはどうすればよいですか?

クライアント:基本的な情報と、サインアップ(名、ユーザ名、画像、パスワード、...)

プロフェッショナル:上記の基本的な情報とはるか(経歴、経験、教育、および多くのとサインアップもっと....)

管理者:誰もがアプリとそのユーザーを制御します。

私はDevise経由でユーザーモデルを作成しました。今、これらの役割とログイン用の場所を1つ作成する必要があります(可能な場合)。

多くの記事は3つのモデルを作成しないようにアドバイスしています。どのように私はそのような解決策を達成するだろうか?

ありがとうございます。

答えて

0

ベストプラクティスでは、polymorphic associationsを使用しています。

共通の属性をuserモデルに含めたり、対応するモデルのその他の詳細を入力します。

2段階サインアップページを作成します。ここでは、共通の詳細を最初に入力し、2番目の手順の詳細はuserの種類に基づいて入力します。

ログインはシングルフォームにすることができます。

多くのチュートリアルや例がインターネット上にあります。

1

このモデルでは、各ユーザーの役割を決定する1つの属性(たとえば、role)を作成できます(たとえば、 'admin'、 'pro'、 'シンプル ')、次にroleに基づいて、宝石を使用して、各タイプのユーザーが何ができるのかを決定することができます()。 あなたのすべてのユーザーは同じ方法で登録してログインしますが、すべての権限が異なります。

このユーザータイプに対して異なる追加情報を保持したい場合は、追加のモデル(プロファイル、アカウントe.t.c.)を作成し、登録ステップで選択したタイプに応じてユーザーに入力するように指示できます。

+0

あなたの答えをありがとう。私はあなたが意味するものを得たと思う。私は内部のAbility.rbファイルの最初の部分を理解しています。Admin、Pro、およびClientsの3つの役割を定義できます。右? 2番目の部分については、共有する例を知っていますか?ありがとう.... – egyamado

関連する問題