设计注销无效,导致路由错误

时间:2013-08-08 20:51:16

标签: ruby-on-rails-3.1 devise omniauth

  <%= link_to "Sign Out", destroy_user_session_path,:method => :delete%>

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

路由错误

没有路线匹配[GET]“/ users / logout”

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

1 个答案:

答案 0 :(得分:1)

您的link_to标记包含:method => :delete,但您的错误消息表明正在使用GET方法发出请求。这不起作用,因为路由仅用于DELETE请求。

您是否点击了“退出”链接并立即收到错误消息?我希望你的回答是否定的。您更有可能在不使用链接的情况下直接在浏览器中访问/用户/注销。这将使它成为GET请求而不是DELETE。