私は次のことを使用devise
して実行しようとしました:
ユーザーがサインイン/アップするとき、私は彼のrole_idで彼をリダイレクトしたいと思います(一部のユーザーには1のIDを、他のユーザーには2のIDを許可します)。
彼の role_id が 1 の場合は にリダイレクトしtasksadmins_path
、それ以外の場合は にリダイレクトしworkers_path
ます。
だから私は次のようなものを試しました:
routes.rb
:
devise_for :users, :controllers => { :sessions => 'user_sessions'} do
get '/users/sign_out' => 'devise/sessions#destroy'
root to: "workers#index"
end
resources :tasksadmins
resources :workers
root to: "workers#index"
これは私のものapplication_controller.rb
です:
class ApplicationController < ActionController::Base
include ApplicationHelper
protect_from_forgery
before_filter :authenticate_user!
rescue_from CanCan::AccessDenied do |exception|
if current_user.role_ids == [2]
redirect_to root_url
else
redirect_to tasksadmins_path
end
end
end