2013-08-08 3 views
0
<%= link_to "Sign Out", destroy_user_session_path,:method => :delete%> 

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

라우팅 오류를 라우팅 오류를유증 로그 아웃은

어떤 경로 일치

devise_for :users, path_names: {sign_in: "login", sign_out: "logout"}, 
      controllers: {omniauth_callbacks: "omniauth_callbacks"} 

답변

1

귀하의 LINK_TO 태그 :method => :delete을 포함 "/ 사용자/로그 아웃"[GET]을 제공하지, 작동하지 않는 그것은해야하지만 오류로 메시지는 요청이 GET 메소드를 통해 이루어지고 있음을 나타냅니다. 이 경로는 DELETE 요청에만 사용되기 때문에 작동하지 않습니다.

"로그 아웃"링크를 클릭했는데 오류 메시지가 즉시 나타 났습니까? 당신의 대답은 '아니오'라고 생각합니다. 링크를 사용하지 않고 브라우저에서/users/logout을 직접 방문하려고 할 가능성이 큽니다. 그러면 DELETE가 아닌 GET 요청이됩니다.

+0

실제로 로그 아웃을 클릭하면 오류 메시지가 나타납니다. –

+0

지연되어 죄송합니다. delete 메소드 링크를 작동시키는 Rails의 외부 JavaScript를 포함하고 있는지 확인하십시오. 이 답변보기 : http://stackoverflow.com/a/4342268/236621 – dgmdan