我的用户角色不同。例如,一个角色是经理,另一个角色是雇员。我能够设置不同的登录和注册,但我希望它们在登录后都有单独的路由。
class Employee < User
class Manager < User
员工可以访问,但不能访问经理
/stock-plan
由经理而非员工访问
/salaries
两者都可以访问
/my-salary
/my-team
如何通过设计实现这一目标?
我尝试使用经过身份验证的,但即使rake routes
显示它可以访问,我似乎也会收到路由错误。
authenticated :employees do
resources :stock_plan
end
答案 0 :(得分:0)
您可以尝试这样做,例如员工路线。
devise_for :users, path: 'employees', path_names: { sign_in: 'login', sign_out: 'logout' }, controllers: { sessions: 'employees/sessions', passwords: 'employees/passwords', confirmations: 'employees/confirmations', registrations: 'employees/registrations', unlocks: 'employees/unlocks' }
答案 1 :(得分:0)
将此添加到您的工资控制器
before_action :correct_role
private
def correct_role
unless current_user.type=="Manager"?
flash[:danger] = "You have no access"
redirect_to root_url
end
end
我假设您已添加
控制器中的before_action :authenticate_user!