AJAXによって送信されるコントローラーの新しいアクションの標準フォームがあります。ユーザーが送信ボタンをクリックするか、Enterキーを1回押すたびに、フォームはすぐに2回送信され、2つの同一のオブジェクトが作成されます。
モデルには検証がなく、それが適切な場合があります。
フォームビューは次のようになります。
<%= simple_form_for @contact, remote: true do |f| %>
<table>
<tr><td class="cell-right-align">First Name</td><td><%= f.text_field :first_name %></td></tr>
<tr><td class="cell-right-align">Last Name</td><td><%= f.text_field :last_name %></td></tr>
<tr><td></td><td><%= f.submit "Create Contact" %></td></tr>
</table>
<% end %>
そのためのコントローラーアクション:
def create
respond_to do |format|
if @contact.save
format.js { render 'search_result' }
else
format.js { render 'new' }
end
end
end
createアクションのログは、同じ秒に2つのPOSTアクションがあり、どちらも同一であることを示しています。
ダブルPOSTを停止するにはどうすればよいですか?:disable_with => 'Saving...'
送信ボタンに追加しようとしましたが、効果がありませんでした。