2012-11-14 4 views
0
I 인증을 위해 책정 지금, 내가 가입 할 수 있습니다 자동으로 로그인 한 사용자를 사용하고

. 그러나고안 식별되지 경로

, 경로 localhost:3000/users/sign_out

를 인식하지 못하는 고안 그것은주는 오류

No route matches [GET] "https://stackoverflow.com/users/sign_out" 

내 경로에는 사용자 용으로 작성한 devise_for : users 문이 있습니다.

나는

class User < ActiveRecord::Base 
devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 
attr_accessible :email, :password, :password_confirmation, :remember_me 
end 

내 레이크 경로 내 URL 경로가없는 이유는 다음

destroy_user_session DELETE /users/sign_out(.:format)  devise/sessions#destroy 

누구나 알고 보여 다음 user.rb로, 너무 내 사용자 모델에서 잘 설정 고안 한 인식

답변

0

경로에 DELETE HTTP 동작이 GET 동작이 아니기 때문입니다.

destroy_user_session 은 해당 URL에 GET 조치를 보내는 브라우저에 URL을 입력하여/세션 번호가

을 파괴 고안) /users/sign_out(.:format을 삭제합니다.

config.sign_out_via = :delete 

to 

config.sign_out_via = :get 

또 다른 뷰의 링크에 :method => :delete을 추가하는 것입니다하는 DELETE 작업이 될 것입니다 이런 식으로 : 유증이 devise.rb에서 sign_out 경로 변화에 대한 GET 조치를 받아 들일 수 있도록하기 위해

Devise가 예상하는대로 서버로 전송됩니다.

+0

대단히 감사합니다. 실제로 작동했습니다! – zurik