为了账号安全,请及时绑定邮箱和手机立即绑定

没有路由匹配“/ users / sign_out”设计rails 3

没有路由匹配“/ users / sign_out”设计rails 3

红颜莎娜 2019-08-29 17:42:46
没有路由匹配“/ 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)中。


查看完整回答
反对 回复 2019-08-29
?
UYOU

TA贡献1878条经验 获得超4个赞

我在devise.rb中更改了这一行:

config.sign_out_via = :delete

config.sign_out_via = :get

它开始为我工作。


查看完整回答
反对 回复 2019-08-29
?
湖上湖

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')

一切都会好起来的。


查看完整回答
反对 回复 2019-08-29
  • 3 回答
  • 0 关注
  • 522 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信