这个错误一直在推动我和一个开发者疯狂。我们正在使用Ruby / Rails jazz构建应用程序,每当我点击退出用户会话时,我都会收到此错误:
Routing Error
No route matches [GET] "/users/sign_out"
Try running rake routes for more information on available routes.
现在我已经跑了很多rake路线了,我得到了:
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
root / home#index
about /about(.:format) home#about
这里有什么要做的吗?我也跟着Stack Overflow上很多帖子的答案都无济于事。还有什么我可以测试来试图解决这个问题吗?
编辑:这是注销链接代码
<a href="/users/sign_out" class="header-links right-link" data-method="delete" rel="nofollow">Logout</a
答案 0 :(得分:1)
检查HTML并确保加载了rails.js,并且没有javascript错误。如果您使用的是jQuery,请确保有noConflict。
注意:我的猜测是你正在运行rails版本&lt; 3.1,请检查布局中是否存在这两行
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>
答案 1 :(得分:1)
尝试:
<%= link_to "Logout", destroy_user_session_path, method: :delete %>
答案 2 :(得分:1)
你的路线在“devise_for”下有这个吗? :
get 'users/sign_out' => 'sessions#destroy', :as => :destroy_user_session
试试这个链接:
<%= link_to "Logout", destroy_user_session_path, method => :delete %>
答案 3 :(得分:0)
检查您的routes.rb是否有,
devise_for :users, ActiveAdmin::Devise.config
有时我的安装似乎错过了这部分ActiveAdmin::Devise.config
,然后我收到此错误。
我在gem's generator中看到了它,但有时它不会添加到我的应用中。