0

レール3で

remoteメソッドフォーム送信を使用している間、同じフォーム値でデータベースに2回影響します。

コントローラーファイル:

 @user_message = UserMessage.new(params[:user_message])
 if  @user_message.save
   render :update
 else
   render :nothing => true
 end

ファイルを閲覧する:

<%= form_tag ('/feedback/user_message'), :method =>'post',  :remote=> true, :id=>'user_message' do%>
      <%= hidden_field_tag 'user_message[user_id]', @user.user_id %>
      <h2><%= @question %></h2>
      <%= text_area_tag 'user_message[msg]',"",  :size=>"40x5" %>
      <%= submit_tag  "Submit"%>
  <% end %>

送信ボタンを押すと、テーブルに 2 つのレコードが作成されます。なんで?

4

2 に答える 2

0

アセットパイプラインに関連する可能性が最も高い問題

前にアセットパイプラインをプリコンパイルする必要があります。

これにより、rails.jsの2つのコピーが作成されます。1つはアセットに、もう1つはapplication.jsに作成されます。

これはRails3のバグまたは落とし穴です。http: //www.ruby.code-experiments.com/blog/2011/10/another-gotcha-with-the-rails-31-asset-pipeline-or-whyを参照してください。 -are-my-jquery-ujs-ajax-requests-triggered-twi.html

この助けを願っています

于 2012-08-23T06:11:31.113 に答える
0

これを引き起こしている可能性のあることがいくつかあります

ujsファイルが2回含まれている可能性があります

//= require jquery_ujs // expected to load from the rails-jquery gem
//= require_tree .     // if any file is present in assets directory hierarchy it will be loaded

または、あなたの睡眠を奪う単なるバグ

https://github.com/rails/jquery-ujs/issues/208

その他のソリューションを確認する

Jquery Rails 3...フォームが2回送信される...2回削除される...ヘルプ

Rails 3.1リモートリクエストが2回送信される

これは、pecompiled アセットをいつ、どのように使用するかというアセット パイプラインの理解にも関連している可能性があります。

私は常に開発モードでこの設定を使用します

config.server_static_assets = false

これにより、アプリはアプリ アセットからアセットを呼び出さなければならなくなります

本番モードでパブリックからプリコンパイルされたアセットを使用する

于 2012-08-23T06:22:51.500 に答える