16

わかりました、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'Gemfileapplication.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-tokendisplay の値、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-railsgem によって管理されます。:confirmメソッドが 2 回起動する原因は何ですか?

編集: 以前は Rails 3.1 の RC5 でこれを見ていましたが、今では Rails 3.1 実際にも見ています。

4

4 に答える 4

25

これはrake assets:precompile、開発環境で実行してpublic/assets/application.js作成したために発生しました。これにより、一緒にコンパイルされたすべてのスクリプト/assets/application.jsを含むこの静的ファイルによって処理されるリクエストが 作成され、スクリプトが再度読み込まれます。// requirepublic/assets/application.js

開発モード<%= javascript_include_tag "application" %>では、複数のタグに展開されます。行に<script>必要な各ファイルに 1つと、独自のコンテンツのみを含むタグがあります。// requireapplication.js

解決策は、ディレクトリ全体public/assetsを手動で削除するか、assets:cleanrake タスクを使用することです。これにより、スクリプト ファイルが再び動的に提供されるようになります。

于 2011-11-28T21:32:30.760 に答える
4

これは私にも起こっていました。「//= require_tree 」を削除します。application.js から修正しました。

于 2011-11-07T05:03:53.120 に答える
0

jquery と jquery_ujs の名前を application.js のバージョンとともに言及し、それでも問題が解決しない場合は、jquery と jquery_ujs の圧縮バージョンを使用します。

また

gem 'jquery-rails' を gemfile に追加してから試してください。

于 2011-11-24T11:42:39.723 に答える
-1

おそらく rails.js ファイルがあります。削除して、もう一度試してください。それはうまくいくはずです。

FoN

于 2011-10-04T15:21:40.600 に答える