5

私は単純なフォームを持っています:

= form_for(posts_path, :id => "new_post", :remote => true) do
  = text_field_tag "post[input]"
  = submit_tag "Post!"

ajax:successイベントにコールバックをバインドしました。

$("form#new_post").bind("ajax:success", function(xhr, data, status){
  alert("Post Created!");
});

ボタンをクリックするPost!と、Post Created2 回表示されます。なんで?

デフォルトでjquery-ujsを使用しているRails 3.1を使用しています。

4

3 に答える 3

5

アプリケーションを Rails 3.0 から 3.1 にアップグレードしたときに、同様のことが起こりました。これは私のミスでした。あなたの

app/assets/javascripts/application.js

Railsヘルパーを2回呼び出していないことを確認してください。使用に問題があります

//= require_tree .

私はこれを削除し、ちょうど残しました

//= require jquery
//= require jquery_ujs
//= require myscripts

私も削除しましapp/assets/javascripts/rails.jsた。ファイルはjquery-rails gemによって生成されましたが、これはもう必要ありません

于 2011-09-05T05:21:34.243 に答える
0

私にとっての落とし穴は

config.assets.debug = true

オプション。

于 2012-09-18T18:06:43.810 に答える