【问题标题】:If I require jquery over jquery_ujs, my application breaks and vice versa如果我需要 jquery 而不是 jquery_ujs,我的应用程序会中断,反之亦然
【发布时间】:2017-03-27 21:36:46
【问题描述】:

我需要在我的 application.js 文件中要求两者。问题是如果一个高于另一个,我的应用程序的一部分会中断。但我需要他们两个都工作。

例如如果我需要 jquery 而不是 jquery_ujs,我的注销功能将停止工作,并且我收到 No route matches [DELETE] "/users/sign_out" 错误。

例如反之亦然,如果 jquery_ujs 超过 jquery,来自设计的一些链接,例如“销毁”或“编辑”完全消失。

我认为这是设计的问题,但我不确定我应该怎么做。

Application.js:

//= require jquery_ujs
//= require jquery
//= require bootstrap
//= require turbolinks
//= require masonry/jquery.masonry
//= require_tree .

_header.html.erb:

 <div class="collapse navbar-collapse navbar-ex1-collapse">
    <ul class="nav navbar-nav navbar-right">
      <li><%= link_to "Home", root_path %></li>
      <li><%= link_to "About", about_path %></li>
      <% if user_signed_in? %>
      <li><%= link_to "New Pin", new_pin_path %></li>
      <li><%= link_to "Account Settings", edit_user_registration_path %></li> 
      <li><%= link_to "Log out", destroy_user_session_path, method: :delete %></li> 
      <% else %>
      <li><%= link_to "Sign in", new_user_session_path %></li>
      <% end %>
  </ul>

更新:显然,当我注销时,它不起作用并给出错误No route matches [DELETE] "/users/sign_out。但是,如果我刷新页面,我每次都会成功注销:/。

【问题讨论】:

  • 你能把你调用sign_out的方式。请为sign_out链接。并且 jquery 也应该在 jquery_ujs 之上调用。
  • 是的,已添加:)

标签: ruby-on-rails ruby devise


【解决方案1】:

您似乎在 jquery 之前添加了 jquery_ujs。所以你需要先添加jquery,比如

//= require jquery   
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require masonry/jquery.masonry
//= require_tree .

【讨论】:

  • 它仍然没有太大变化。只是给出不同的问题。
  • @Benjamints:如果错误与此问题有关,请告诉我们什么是错误。
【解决方案2】:

试试这个,把这段代码粘贴到devise.rb

config.sign_out_via = :get

【讨论】:

    猜你喜欢
    • 2010-11-14
    • 2011-12-07
    • 2020-02-25
    • 2013-10-25
    • 2010-10-23
    • 1970-01-01
    • 2017-04-09
    • 2012-04-11
    • 1970-01-01
    相关资源
    最近更新 更多