経緯
Rails7でさくっとWebSocketするを実践している中で躓いたところがいくつかあったので、まとめてみました。
localhostアクセスできない問題
- 原因
データベースに接続できていなかった - 解決法
接続する前にコンテナに入り(docker-compose run app sh
)、以下を実行することでアクセスできるようになった
rails db:migrate
チャットがリアルタイムで更新されない。
- 原因
broadcastメソッドの引数指定がおかしかった。
# 間違い
ActionCable.server.broadcast 'room_channel', message: render_message(message)
# 正解
ActionCable.server.broadcast 'room_channel', { message: render_message(message) }
# 第二引数の指定方法が異なる。broadcastメソッドはキーワード引数を受け付けておらず。第二引数では
# データ(ハッシュ)を受け取る。
コンテナ(Rails)のステータスがrestartingになってる問題
- 8/7追記分
- 以下のサイトが参考になりました!
- 【Docker】 Restarting xxxx が繰り返してコンテナが立ち上がらない場合 #React - Qiita
最後に
サーバーのログを見てやっと気づく場面もあり、ログを見ることの重要性を再認識させられました😅