4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ajaxによる非同期通信で、データベースに二重に投稿される問題

Posted at

問題

form_forでデータを受け取り、Ajaxによる非同期通信でHTMLを差し替えて投稿する際、
投稿内容がデータベースに二重に投稿される問題が起きる。

原因

form_forにて投稿する際、controllerのcreateアクションとformのPOST、両方がデータベースに投稿してしまう。

※このへん理解浅いので、理解が間違っていたらご指摘いただけると助かります。

解決法

jsファイルの非同期通信の関数の最後に return false; を記述しておく。
formのPOSTがキャンセルされるため、二重投稿されなくなる。

補足

かなりピンポイントな問題と対策な気がしますが、検索しても解決方法が出てこなかったので記載しておきます。
なんとなくの理解ですので、言い方や理解の仕方が間違ってる可能性あります。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?