我目前正在使用Devise收到此错误,我已经尝试了其他问题的多个问题,以便通过ZERO运气来解决它。
首先建议我确保将该方法添加为删除:
<%= link_to "Logout", destroy_user_session_path, :method => :delete, :class => 'navbar-link' %>
没有运气。
然后我被告知我需要在我的布局标题中加入:
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
或者这个:
<%= javascript_include_tag :defaults %>
仍然......没有运气。
最后,我被建议更改我的/config/initializers/devise.rb文件,将config.sign_out_via = :delete
更改为config.sign_out_via = :get
根本没有运气。
我不确定还有什么要尝试的,
这是我的HTML中的当前代码,如果您需要查看我的路线以便更好地为您提供帮助,请告诉我。
<!DOCTYPE html>
<html>
<header>
<h2><span>Anume*</span></h2>
<img id='header' src="http://wallpapercave.com/wp/hkWe2SK.jpg" alt="" />
</header>
<head>
<title>Anume</title>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<p class="navbar-text pull-right">
<% if user_signed_in? %>
Logged in as
<strong><%= current_user.email %></strong>.
<%= link_to 'Edit profile', edit_user_registration_path, :class => 'navbar-link' %>
|
<%= link_to "Logout", destroy_user_session_path, :method => :delete, :class => 'navbar-link' %>
<% else %>
<%= link_to "Sign up", new_user_registration_path, :class => 'navbar-link' %>
|
<%= link_to "Login", new_user_session_path, :class => 'navbar-link' %>
<% end %>
</p>
</body>
这是我的退出功能的rails路线:
destroy_user_session DELETE /users/sign_out(.:format) devise/session#destroy
答案 0 :(得分:6)
我喜欢在
上做一件事 /config/initializers/devise.rb已从config.sign_out_via = :delete
更改为config.sign_out_via = [:delete, :get]
,因此您可以同时使用删除方法未触及的两种方案。
打开你的控制台并确保jquery和jquery_ujs正确加载
让我与您分享我的设置
在我的资产application.js中我有
#app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
现在我的布局
#app/views/layouts/application.html.haml
!!!
%html{:lang => "en"}
%head
%meta{:charset => "utf-8"}/
%meta{:content => "IE=edge", "http-equiv" => "X-UA-Compatible"}/
%meta{:content => "width=device-width, initial-scale=1", :name => "viewport"}/
%title
Best Site Ever
= csrf_meta_tags
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
%body
- if current_user
= link_to destroy_user_session_path, :method => :delete do
Logout
我希望能够提供帮助
答案 1 :(得分:0)
我有类似的问题,对我来说这是与require
相关的问题jquery_ujs
require turbolinks
请检查
应用程序/资产/ Javascript角/ application.js中
以下行是否存在。
//= require jquery
//= require jquery_ujs
//= require turbolinks
另外请确保application.html.erb文件
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
以上行未注释