没有路由匹配“/ users / sign_out”设计rails 3我在我的应用程序上安装了devise并在我的application.html.erb文件中应用了以下内容:<div id="user_nav">
<% if user_signed_in? %>
Signed in as <%= current_user.email %>. This cannot be cheese?
<%= link_to 'Sign out', destroy_user_session_path %>
<% else %>
<%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %>
<% end %></div>我跑了rake routes并确认所有路线都有效。另外,在我的routes.rb文件中我有devise_for :users和root :to => "home#index"。单击“注销”链接时出现以下路由错误:No route matches "/users/sign_out"是什么导致错误?
3 回答
当年话下
TA贡献1890条经验 获得超9个赞
我认为退出的路线是一种DELETE
方法。这意味着您的退出链接需要如下所示:
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
你的不包括这:method => :delete
部分。此外,请注意,要使其工作,您还必须包含<%= javascript_include_tag :defaults %>
在您的布局文件(application.html.erb
)中。
UYOU
TA贡献1878条经验 获得超4个赞
我在devise.rb中更改了这一行:
config.sign_out_via = :delete
至
config.sign_out_via = :get
它开始为我工作。
湖上湖
TA贡献2003条经验 获得超2个赞
您可能没有包含jquery_ujs javascript文件。确保您使用的是最新版本的jquery-ujs:https://github.com/rails/jquery-ujs以及可用的最新文件:
rails generate jquery:install
你应该不会有任何更多的rails.js文件。如果你这样做,你可能已经过时了。确保此文件在config / application.rb中加载了默认值
config.action_view.javascript_expansions[:defaults] = %w(jquery.min jquery_ujs)
(同样,你应该不会有rails.js这里提交)。最后,添加Devise wiki(haml-style)中记录的链接:
= link_to('Logout', destroy_user_session_path, :method => 'delete')
一切都会好起来的。
- 3 回答
- 0 关注
- 579 浏览
添加回答
举报
0/150
提交
取消