はじめに
以前の投稿(【Rails】 Action Cableを用いてチャット機能を作成)で、ChatRoom毎で非同期表示される(自分/相手の投稿をリアルタイムで表示できる)チャットアプリを作成したが、
違うChatRoomの投稿の表示が反映されてしまうというバグが発生していた。
具体的には
Aさん:Room1にいる Bさん:Room2にいる
↓
Aさんが投稿した内容がRoom1だけでなく、Bさんの画面(Room2)にも表示が反映されてしまった
他にも、投稿したのにも関わらず表示されない(ただしDBにはPOSTされている)といった事象も発生していた。
原因と解決方法
どうやらturbolinksが悪さをしているらしく、以下の方法で解決した。
◆ turbolinksを無効化
①gemfileのgem 'turbolinks'
を削除
②application.jsの//= require turbolinks
を削除
◆ room.coffeeをfix
1行目の以下のコードを
document.addEventListener 'turbolinks:load', ->
↓以下に変更
$ ->