【发布时间】:2015-05-03 17:48:19
【问题描述】:
所以,我有一个应用程序,它使用 RoR 4.2.0 和 Ruby 2.2.0。这是一个在线商店,有一个产品商店,带有一个“添加到购物车”按钮,我已经设置为使用远程调用将产品添加到购物车。购物车还有一个按钮,可以通过远程调用破坏当前的购物车。
这曾经在 Rails 4.1.x 上运行良好,但在我将我的应用程序升级到 4.2.0(并将所有其他 gem 更改为最新版本)后它就不行了。问题是,它在每个远程调用中发送 2 个调用,而不是 1 个(在某些时候它也发送了 3 个,我没有意识到它何时发生,因为我也修改了代码库中的其他地方),结果在单击添加到购物车按钮时添加了两个项目,并在单击销毁购物车时提示两个删除。
我试图解决这个问题,是我改变了 application.js 中条目的位置,如另一个问题中所述。这是我当前的 application.js:
//= require bootstrap
//= require jquery
//= require jquery-ui/effect-blind
//= require jquery_ujs
//= require turbolinks
//= require underscore
//= require gmaps/google
//= require analytics
//= require blueimp-gallery-all
如果我保持现在的状态,Bootstrap 导航栏菜单可以工作(为什么?bootstrap 需要 jQuery,不是吗?)但我遇到了上述问题。如果我将 Bootstrap 移到 jquery 下面,AJAX 调用会正常工作,但我没有 Bootstrap 菜单。奇怪的是,如果我删除了整个 jquery 行,一切都会正常运行。这里发生了什么? bootstrap 是否在某个时候开始包含 jQuery?还是我的资产管道以某种方式“损坏”了?我已经清除了 temp 和 assets (rake tmp:clear && rake assets:clean)。
编辑:从 javascript.js 中删除 jquery 在生产中不起作用,但在开发中起作用。我很困惑。
【问题讨论】:
-
你给
javascript_include_tag "application"打过两次电话吗? -
我使用'bootstrap-sass'并且javascript_include_tag被调用一次。
-
从 javascript.js 中删除 jquery 在生产中不起作用,但在开发中起作用。我很困惑。
标签: jquery ruby-on-rails ajax twitter-bootstrap