私には、ワーカーと管理者の2種類のユーザーがいます。私は労働者のテーブルと管理者のテーブルを持っています。ユーザーがアプリケーションページに入る前に、ユーザーに強制的にサインインさせたいのですが。そこで、次の行にApplicationControllerを追加しました。
`before_filter :authenticate_user!`
ここで、呼び出される関数を作成しました。この関数はis_worker
、ユーザーがワーカーテーブルにあるかどうかを確認します。もしそうなら、彼を労働者のページにリダイレクトします。ユーザーが見つからない場合は、管理者ページにリダイレクトします。
ワーカーが管理者ページに入ることができず、管理者がワーカーページに入ることができないようにしたいと思います。
だから私は:before_filter :is_worker
を追加する必要があると思います:workerscontroller
とadminscontroller
。
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :authenticate_user!
def is_worker
@email = current_user.email
tag = Worker.where(:email => @email)
if tag.nil?
redirect_to '/admins'
else
redirect_to '/workers'
end
end
end
私が間違っている場合は訂正してください。