2016-09-18 6 views
0

DeviseのRailsアプリケーションでは、複数のタイプのユーザー(Student、Teacher、およびAdmin)を作成する予定です。それらには、ユーザー名、電子メール、パスワードなどの共有属性がいくつかありますが、いくつかの違いがあります。生徒は教師(およびおそらくお互い)によって投稿されたコンテンツとやりとりでき、教師はクラスを作成してコンテンツを投稿し、生徒と対話し、管理者はほとんどすべてのものを制御できます(ユーザー、コンテンツなどを取り除くことを含む)。 。)複数のデベロッパーユーザー:複数のモデルまたは継承?

私はこれを行うための最善の方法を見つけようとしており、私はまだRailsには新しいので、頭痛の少ない方が望ましいです。私は複数のDevise ModelsをUserのタイプごとに1つずつ作成するべきですか、複数のモデルをUserから継承する必要がありますか(私はSingle Table継承と呼んでいます)。どちらかを試みるのはかなり公然ですが、

+1

Deviseは認証を行いますが、あなたの例では認可を求めています。それらは同じものではありません。 CanCanCanやPundit、あるいはそこにある多くの認可宝石を見てみましょう。あなたはRollifyや家庭での役割の実装を使いやすくすることができます。 – MarsAtomic

答えて

0

異なる権限(たとえば、管理者:&ユーザ)を使用する場合は、Punditを使用できます。あなたは(同じ文脈で学生と教師のような)同じ権限を持つ異なる役割を持っている場合は

あなた多分他のすべてのコントローラを導き出すことができ、そこからベースコントローラを定義し、継承や懸念を使用する必要があります。