使用Devise失败的会话销毁。
但是,如果我将<%= javascript_include_tag :application %>
重写为<%= javascript_include_tag :all %>
。
但据我所知,后一种方式现已被弃用。 我禁用了turbolinks,我的配置就像这些。
配置/ routes.rb中
devise_for :users, path_names: {sign_in: "login", sign_out: "logout"}, controllers: { omniauth_callbacks: "omniauth_callbacks" }
应用程序/资产/ Javascript角/ application.js中
//= require jquery
//= require jquery_ujs
//= require foundation
//= require_tree .
$(function(){ $(document).foundation(); });
和退出链接。
<%= link_to "log out", destroy_user_session_path, method: :delete %>
,错误讯息为ActionController::RoutingError (No route matches [DELETE] "/users/logout"):
如果我正确编写application.js,我认为<%= javascript_include_tag :application %>
与<%= javascript_include_tag :all %>
相同。
我不知道为什么会这样,以及如何解决这个问题?
我不想使用弃用的:all
方法。
答案 0 :(得分:0)
看起来Rails没有找到路线。如果配置
,您可以检查devise.rbconfig.sign_out_via = :delete
如果设计版本不是很老,我认为默认为“:delete”。但它可能是“:get”,如果是“:get”,要么将配置更改为
config.sign_out_via = :delete
或将注销链接更改为
<%= link_to "log out", destroy_user_session_path, method: :get %>
或者无论如何,都使用“:得到”来拍摄。