ユーザーにサインインを強制しようdevise
としています。サインインした後、彼のメールがワーカーのテーブルにあるかどうかを確認したいと思います。存在する場合は、彼を にリダイレクトし、そうでない場合は にリダイレクトし/workers
ます/tasksadmins
。
私は試した:
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :authenticate_user!
before_filter :is_worker
def is_worker
@email = current_user.email
tag = Worker.where(:email => @email)
if tag.nil?
redirect_to '/tasksadmins'
else
redirect_to '/workers'
end
end
end
しかし、私は得ました:
undefined method `email' for nil:NilClass
アップデート
私は試した:
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :authenticate_user!
before_filter :is_worker
def is_worker
if user_signed_in?
@email = current_user.try(:email)
if @email && Worker.find_by_email(@email).nil?
redirect_to '/tasksadmins'
else
redirect_to '/workers'
end
else
redirect_to '/users/sign_in' # devise?
end
end
end