問題
form_forでデータを受け取り、Ajaxによる非同期通信でHTMLを差し替えて投稿する際、
投稿内容がデータベースに二重に投稿される問題が起きる。
原因
form_forにて投稿する際、controllerのcreateアクションとformのPOST、両方がデータベースに投稿してしまう。
※このへん理解浅いので、理解が間違っていたらご指摘いただけると助かります。
解決法
jsファイルの非同期通信の関数の最後に return false; を記述しておく。
formのPOSTがキャンセルされるため、二重投稿されなくなる。
補足
かなりピンポイントな問題と対策な気がしますが、検索しても解決方法が出てこなかったので記載しておきます。
なんとなくの理解ですので、言い方や理解の仕方が間違ってる可能性あります。