我正在我的应用程序中部署设计,当我尝试退出时出现以下错误: -
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中的任何内容。
已解决 - 但由于某种原因,我现在无法回答我自己的问题。见下面的评论。