我使用devise
并尝试做接下来的事情:
当用户登录/注册时,我想通过他的 role_id 重定向他(我让一些用户的 id 为 1,其他用户为 2)。
如果他的 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