Хорошо, я видел этот вопрос о том, что эта проблема вызвана множественными ссылками 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
файле (который компилируется Sprockets для конвейера ресурсов).
//= require jquery
//= require jquery_ujs
//= require 'underscore'
//= require 'backbone'
У меня есть underscore.js
и backbone.js
в моем каталоге /vendor/assets/javascripts/
,и звездочки, кажется, находят те в порядке.Я также искал файл application.js
, который обслуживает sprockets, и 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
.Что заставляет мой метод :confirm
запускаться дважды?
EDIT : Ранее я видел это на RC5 Rails 3.1, но теперь я также вижу его на Rails 3.1 актуальным.