为注销

时间:2017-06-10 19:47:42

标签: ruby-on-rails devise

我正在我的应用程序中部署设计,当我尝试退出时出现以下错误: -

No route matches [GET] "/users/sign_out"

我已经检查了 rake路线,我可以看到没有GET的路线,但有一条DELETE路线。我从研究GET通过 JQuery 转变为DELETE的问题中理解。我安装了 JQuery ,它在我的GEMFILE中: -

gem 'jquery-rails'

我的application.js文件中还需要JQuery: -

//= require jquery
//= require jquery_ujs

我确保退出链接是正确的,事实上我已尝试过两种形式: -

<%= link_to "Sign Out", destroy_user_session_path, method: :delete %>
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>

根据其他一些建议,我将其添加到我的application.html文件中: -

<%= javascript_include_tag :defaults %>

我不想在devise.rb文件中包含以下行,因为这只是掩盖了真正的原因: -

config.sign_out_via = :get

但是我通过使用它而不是注销链接来实现它: -

<%= button_to('Logout', destroy_user_session_path, :method => :delete)%>

有趣的是,这在昨天工作,由于某种原因,现在还没有。同时,application.rb中的设计通知/警告昨天正在工作,他们现在也没有工作。

编辑 - 我现在已经在页面中创建了一个简单的脚本,唯一可以实现此功能的方法是将以下内容添加到页面本身(如果我将其添加到application.html,则不起作用): -

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

如果没有这个,以下脚本将无效: -

<script>
$(document).ready(function(){
    $("p").click(function(){
    alert("The paragraph was clicked.");
    });
});
</script>
<p>Click on this paragraph.</p>

我在控制台中收到此错误: -

ReferenceError: $ is not defined

我认为如果 JQuery 正确加载,那么这个脚本应该可以工作吗?

编辑 - 更多信息;如果我将测试 jQuery 代码添加到设计视图中,它可以工作。 jQuery 没有被我设计的子文件夹中的页面加载 - 我可以在页面的源代码中看到,在设计视图之外的页面中没有脚本引用。

事实上,根本没有出现html head部分,它显然没有包含application.html中的任何内容。

已解决 - 但由于某种原因,我现在无法回答我自己的问题。见下面的评论。

0 个答案:

没有答案