사용자 등록 / 인증을 처리하기 위해 Rails 4.0.2와 Devise 3.2.2를 사용하고 있습니다.
나는 구글을 검색하고 답변을 찾기 위해 stackoverflow를 검색했지만 실제로 내 질문에 답할 수있는 것을 찾을 수 없습니다.
아래 코드는 내 routes.rb입니다 . 모든 세션 경로와 등록 경로를 건너 뛰었지만 어떤 이유로 든 Devise는 내 사용자 정의 registrations_controller.rb를 사용하지 않습니다. 사용중인 경우 / pages / success로 리디렉션되어야합니다 (아래 참조). registrations_controller.rb)
App::Application.routes.draw do
resources :posts
resources :questions
get "users/:id", to: "users#show"
devise_for :users, :controllers => {:registrations => "registrations"}, :skip => [:sessions, :registrations]
as :user do
get 'login' => 'devise/sessions#new', :as => :new_user_session
post 'login' => 'devise/sessions#create', :as => :user_session
delete 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
end
as :user do
get '/' => 'devise/registrations#new', :as => :new_user_registration
post 'register' => 'devise/registrations#create', :as => :user_registration
end
get "registrations/update"
get "pages/home"
get "pages/privacy"
get "pages/terms"
get "pages/success"
end
class RegistrationsController < Devise::RegistrationsController
protected
def after_inactive_sign_up_path_for(resource)
'/pages/success'
end
end
발생할 수있는 몇 가지 잠재적 인 문제가 있습니다.
건너 뛰기
등록 기능을 건너 뛰는 경우 Devise가 RegistrationsController
?
나는 개인적으로 이것을 할 것입니다 (당신의 경로를 수정하십시오) :
#config/routes.rb
root to: "users#index" (where ever your "logged-in" page is)
devise_for :users, path: "", controllers: { sessions: "sessions", registrations: "registrations" }, path_names: { sign_in: 'login', password: 'forgot', confirmation: 'confirm', unlock: 'unblock', sign_up: 'register', sign_out: 'signout'}
그러면 필요한 경로가 제공되고 앱의 "인증 된"색인 페이지로 라우팅되어 Devise의 로그인 또는 등록 페이지가 표시됩니다.
정의
다른 문제는 Devise Registrations 컨트롤러의 잘못된 정의입니다. 우리는 최신 개발 앱에서이 코드를 사용합니다.
#app/controllers/registrations_controller.rb
class RegistrationsController < ::Devise::RegistrationsController
end
호출 여부를 확인 ::
하기 위해 전에을 사용해 Devise::RegistrationsController
볼 수 있습니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다