如果我需要jquery而不是jquery_ujs,我的应用程序会中断,反之亦然

时间:2016-11-14 09:33:17

标签: ruby-on-rails ruby devise

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

E.G。如果我需要jquery over jquery_ujs,我的注销功能将停止工作,并收到No route matches [DELETE] "/users/sign_out"错误。

E.G。反之亦然,如果jquery_ujs超过了jquery,那么来自设计的一些链接,例如'destroy'或'edit'就会完全消失。

我认为这是一个设计问题,但我不确定应该做些什么。

的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。但是,如果我刷新页面,我会成功注销:/ everytime。

2 个答案:

答案 0 :(得分:4)

好像你在jquery之前添加了jquery_ujs。所以你需要先添加jquery,比如

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

答案 1 :(得分:0)

试试这个,将此代码粘贴到devise.rb

config.sign_out_via = :get