Rails 3 앱에서 Devise를 사용하고 있지만이 경우 기존 사용자가 사용자를 생성해야합니다.
이 때문에 나는 원한다 :
- 사용자가 가입 할 수있는 경로 를 제거 하려면 .
- 사용자 가 가입 한 후에도 프로필을 편집 (이메일 주소 및 비밀번호 변경) 할 수 있도록 하려면
어떻게해야합니까?
현재 다음을 전에 배치 하여이 경로를 효과적으로 제거하고 있습니다 devise_for :users
.
match 'users/sign_up' => redirect('/404.html')
그것은 효과가 있지만 더 좋은 방법이 있다고 생각합니다.
최신 정보
Benoit Garret이 말했듯이, 제 경우 가장 좋은 해결책은 등록 경로 작성을 건너 뛰고 실제로 원하는 것을 작성하는 것입니다.
그렇게하기 위해 먼저을 실행 rake routes
한 다음 출력을 사용하여 원하는 것을 다시 작성했습니다. 최종 결과는 다음과 같습니다.
devise_for :users, :skip => [:registrations]
as :user do
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end
참고 :
- 나는 여전히
:registerable
내User
모델에 devise/registrations
이메일 및 비밀번호 업데이트 처리- 다른 사용자 속성 (권한 등) 업데이트는 다른 컨트롤러에서 처리합니다.
실제 답변 :
기본 Devise 경로의 경로를 제거하십시오. 즉 :
devise_for :users, path_names: {
sign_up: ''
}
https://example.com/users/
. 아래 답변을 참조하십시오.