Jquery 茧(红宝石)在生产中不起作用

Jquery 茧(红宝石)在生产中不起作用,jquery,ruby-on-rails,ruby,cocoon-gem,Jquery,Ruby On Rails,Ruby,Cocoon Gem,我目前正在用Ruby on Rails开发一个应用程序,并试图用cocoon gem实现嵌套属性:根据我目前的配置,它可以在本地机器上运行,但不能在服务器上运行。我知道它为什么不起作用,但不知道如何修复它 首先,这是我的清单,包括cocoon: application.js ... //= require cocoon //= require jquery //= require jquery_ujs //= require bootstrap //= require turbolin

我目前正在用Ruby on Rails开发一个应用程序,并试图用cocoon gem实现嵌套属性:根据我目前的配置,它可以在本地机器上运行,但不能在服务器上运行。我知道它为什么不起作用,但不知道如何修复它

首先,这是我的清单,包括cocoon:

application.js    

...
//= require cocoon
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require chartkick
//= require_tree .
我在这里看到了问题:Cocoon在jquery和jquery_ujs之前,因此在开发人员工具的控制台中出现以下错误:

未捕获引用错误:未在cocoon上定义jQuery。self-6874AD698CEFD21CC119B773550F61B5C1A60396460F015222AF59293AFFE80.js?body=1:131

即使我有错误,在本地嵌套的属性仍然有效。另一方面,在生产环境中,添加关联的按钮(link_to_add_association)不再起作用(它可以单击,但什么也不做,甚至不会抛出错误)。当然,我也尝试重新排列清单,并将jquery和jquery\u ujs放在cocoon之前:但是cocoon不再正常工作:cocoon插入两个元素,而不是插入一个具有link\u to\u add\u关联的元素

这是my application.html的标题:

application.html.erb

..
  <%= csrf_meta_tags %>
  <%= javascript_include_tag 'https://www.gstatic.com/charts/loader.js' %>
  <%= javascript_include_tag 'application', 'chartkick' %>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
..

我不知道为什么cocoon会插入两次条目,或者为什么应用程序在生产中不起作用。有人知道我如何解决这个问题吗

仅参考一次


从布局中删除行
如果包含
应用程序.js
两次,这意味着cocoon javascript也包含两次,因此cocoon将有两个单击处理程序:

<%= javascript_include_tag 'application', 'chartkick' %>
<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>


我想你应该删除第一行。

其他问题:你在application.js中包括chartkick.js,但是你也可以在布局中加载chartkick。这对我来说没有意义,为什么不把cocoon移到jquery要求的下方呢?@SimonFranzen你的第一个答案解决了我的问题。非常感谢你!如果你在回答中加上“只参考一次”,我会接受。很高兴听到。是的,我更新了我的答案@megahra@megahra更新了我的答案。让我们清理并删除此帖子下的两条评论
<%= javascript_include_tag 'application', 'chartkick' %>
<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>