【发布时间】:2011-08-16 19:48:04
【问题描述】:
好的,所以我已经看到this question 关于这个问题是由 jQuery 或 Prototype 的多个链接引起的,但我可以确认我只是在整个页面上链接到 jQuery 一次 .我的问题是:当我有一个确认删除的link_to 时,弹出窗口会显示两次。这是我模板中的适用代码(用 Slim 编写):
link_to('Destroy', depot_path(@depot.id), :confirm => "Really?", :method => :delete)
我正在运行 Rails 3.1.0 并打开了资产管道,gem 'jquery-rails' 在我的Gemfile 中,以下是在我的application.js 文件中(由资产管道的链轮)。
//= require jquery
//= require jquery_ujs
//= require 'underscore'
//= require 'backbone'
我的/vendor/assets/javascripts/ 目录中有underscore.js 和backbone.js,sprockets 似乎可以找到它们。我还搜索了 sprockets 提供的application.js 文件,jQuery 只存在一次,jQuery UJS 只存在一次。这是我的页面呈现时我的头部的样子(我省略了显示的 csrf-token 值,FWIW)。
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<title>Administration</title>
<link href="/assets/screen.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/assets/application.js" type="text/javascript"></script>
<meta content="authenticity_token" name="csrf-param" />
<meta content="--token--omitted--" name="csrf-token" />
<script src="/assets/common/subdata.js" type="text/javascript"></script>
<link href="/assets/show.css" media="screen" rel="stylesheet" type="text/css" />
</head>
subdata.js 中有一些特定于 Backbone 的代码;没有什么会选择再次包含 jQuery。那么有什么关系呢?我的项目中的任何地方都没有额外的 jQuery 文件;这一切都通过jquery-rails gem 进行管理。是什么导致我的 :confirm 方法触发两次?
编辑:我以前在 Rails 3.1 的 RC5 上看到过这个,但现在我在 Rails 3.1 上也看到过。
【问题讨论】:
标签: jquery ruby-on-rails ruby-on-rails-3.1 asset-pipeline sprockets