わかりました、jQuery または Prototype の複数のリンクが原因でこの問題が発生しているというこの質問を見てきましたが、ページ全体でjQueryに 1 回しかリンクしていないことを確認できます。私の問題は次のとおりですlink_to
。削除を確認するメッセージがあると、ポップアップが 2 回表示されます。私のテンプレートに適用可能なコードは次のとおりです(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'
私のディレクトリにはunderscore.js
とがありbackbone.js
、/vendor/assets/javascripts/
スプロケットはそれらを問題なく見つけているようです。また、sprockets が提供するファイルを検索したところapplication.js
、jQuery は 1 回だけ含まれており、jQuery UJS は 1 回しか含まれていません。これは、私のページがレンダリングされたときの頭の外観です ( csrf-token
display の値、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
バックボーン固有のコードが含まれています。jQuery を再度含めることを選択するものは何もありません。それで、取引は何ですか?プロジェクトのどこにも追加の jQuery ファイルがありません。それはすべてjquery-rails
gem によって管理されます。:confirm
メソッドが 2 回起動する原因は何ですか?
編集: 以前は Rails 3.1 の RC5 でこれを見ていましたが、今では Rails 3.1 実際にも見ています。