2016-06-01 19 views
1

、私は好き、「before_filter」ブツを設定する必要があります。素晴らしいです工夫:複数のユーザーの種類は、工夫にセキュリティを追加するためには

before_filter :authenticate_student!, only: [:new, :edit] 

...しかし、私のアプリは、2つのユーザータイプを必要とします。..学生と教師。コントローラが認証されているかどうかを確認するにはどうしたらいいですか?

のような:

before_filter :authenticate_any!, only: [:new, :edit] 

どのように私はそれをアーカイブすることができますか?

私はRubyの2.2.0を使用していて、レール4

+0

を確認する方法のコードを完了することがあり、アプリケーションのコントローラに

class ApplicationController < ActionController::Base def authenticate_student! authenticate_user! && current_user.student? end def authenticate_any! authenticate_user! end end 

をこれらのメソッドを定義します説明のように、ユーザーのような音は異なる '役割'を持つ可能性があります。ユーザーが学生または教師(またはその両方)になる可能性のある場所その場合、この機能に対する別のアプローチは、コースとの関係に基づいて役割を設定し、1つのタイプのユーザーのみを持つことです。次に、認証の代わりにロールに基づいて制限することができます。 – Swards

+0

この回答を見てください:http://stackoverflow.com/a/20642860/3033467あなたが望むものと正確に思えます。 – user3033467

+0

私の学生/教師のテーブルは本当に異なっています。教師は異なる役割を持ち、異なる属性が必要です。それで私はなぜ学生から離れているのですか? – Techmago

答えて

2

はちょうどあなたがあなたの考えるstudent?