2017-04-24 3 views
0

내 역할이 다릅니다. 예를 들어, 한 역할은 관리자이고 다른 역할은 관리자입니다. 다른 로그인과 등록을 설정할 수 있었지만 둘 다 로그인 뒤에 별도의 경로가 있어야합니다.역할별로 모든 경로를 범위 지정하려면 어떻게합니까?

/stock-plan 

관리자에 의해 접근하지만

class Employee < User 
class Manager < User 
직원에 의해 접근

아니라 관리자하지 내가 유증과이를 어떻게 직원 모두

/my-salary 
/my-team 

에 의해

/salaries 

접근 ?

인증을 시도했지만 rake routes 액세스가 가능하다는 표시가 있어도 라우팅 오류가 발생하는 것 같습니다.

+0

라우팅 오류를 붙여 넣으십시오. –

+0

@ seaify-Freelancer 아, 직원들에게 복수형을 사용했기 때문에 인증 된 회선이 작동하지 않는다는 것을 알았습니다. – Strawberry

답변

0

컨트롤러에 before_action :authenticate_user!를 추가 있다고 가정

authenticated :employee do 
    resources :stock_plan 
end 
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

이것은 devise 라우트를 다시 매핑하기위한 것입니다. 역할을 기반으로 특정 경로를 사용할 수있게하고 역할에 따라 인증을 요구합니다. – Strawberry

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 

이 추가 난 당신이 내가 :employees 복수하지 않을 것을 발견