1

我设置了一个注销按钮,但它会将我带到链接,但不会让我退出。我显示

Routing Error

No route matches [DELETE] "/signout"
Try running rake routes for more information on available routes.

我有这个

<%= link_to "Logout", destroy_user_session_path, method: :delete %>

在我的 rake 路由中

 destroy_user_session GET    /signout(.:format)       devise/sessions#destroy

在我的 routes.rb

devise_for :user, :controllers => { :registrations => "registrations" }, :skip => [:registrations, :sessions] do 
  get 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
end

所以注销应该把我带到localhost:3000/signout它所做的事情,但这就是我得到路由错误的地方。但是,当我第二次输入 URL 时,它在路由错误页面中,它最终将我注销。为什么它第一次不起作用?

谢谢

4

1 回答 1

2

您明确告诉您的链接(正确)使用 DELETE 方法,但您的路线与该方法不匹配。改变:

get 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session

至:

delete 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
于 2013-06-30T16:46:46.133 回答