2011-04-07 3 views
17

관리자 사용자가 Devise의 다른 사용자를 편집 할 수 있지만 다른 사용자 (예 :/users/1/edit)의 편집 페이지에 액세스하려고 할 때,Devits : 관리자가 다른 사용자를 편집하도록 허용 - 레일

작동하는 것 같다 유일한 경로는
Unknown action 

Could not find devise mapping for path "https://stackoverflow.com/users/1/edit" 

/사용자/편집, 현재 사용자의 편집 페이지를 보여줍니다, 나는 다음과 같은 메시지가 나타납니다. 내 경로에

내가 가진 파일 :

devise_for :users, :controllers => { :registrations => 'users' } 
resources :users 

어떤 아이디어? 감사!

답변

1

나는 당신이하려는 일을했으며 경로가 올바르게 보입니다.

사용자에게 수행하려는 모든 CRUD 작업을 처리하는 UsersController도 만들어야합니다. 이것은 Devise와는 별개입니다.

UsersController가있는 경우 admin_user가 admin이 아닌 경우에만 리디렉션하여 (필터 이전) 리디렉션하여 특정 작업에 대한 액세스를 허용 할 수 있습니다.

6

고안 사용자 인증에 좋은 곳입니다하지만 하지관리 사용자에 대한 지원 내장 함께 제공한다. 따라서 직접 제작해야합니다.

여기 방법은 an example입니다. 이 예는 몇 개월이지만 올바른 방향으로 가리켜 야합니다.

+0

감사합니다. Dty - 작동하는 것처럼 보입니다. 다음 날에 시도해 보시고 흥분 하시겠습니까?/그렇다면 답변을 선택하십시오! 다시 한번 감사드립니다. –

+0

이 작업을 할 수 있습니까? – ZMorek

19

저는이 작업도 수행해야했으며, 현재이 작업을 수행하지 않았습니다. 가장 많이 답변 된 답변에는 죽은 링크가 있기 때문에 여기에 해결책을 게시 할 것이라고 생각했습니다.

사용자 컨트롤러를 만들고 폼과 컨트롤러를 직접 작성해야하지만 설정해야하는 UsersController도 격리해야합니다. 당신의 routes.rb 파일에서이 작업을 수행하려면/모든 기본 유증-처리 경로를 변경합니다

devise_for :users, :path_prefix => 'd' # routes for devise modules on User 

resources :users # custom admin-type CRUD for users 

이에 devise_for :users 전화를 수정하려면/D/사용자/... 그리고 당신은/사용자 보자 .. . 경로를 사용하여 사용자를 관리자로 관리 할 수 ​​있습니다.

Devise도이 주소를 in their wiki으로 지정합니다.

관련 문제