30代での転職。ウェディング業界からプログラミングの世界へ

33歳。行きあたりばったりだった者。ウェディング業界からプログラミングの世界へ飛び込み、起業を目指す者のブログ

rails/heroku ActionCableを導入したアプリをデプロイ→エラー発生→解決

こんにちは。
本日は、ActionCableを導入したアプリをherokuへのupした際に起きたエラーについて記載していきます。
ローカル環境では確認できるのに、heroku上では、エラーが発生してしまう!
そもそも、「そのままの状態だとAction Cableが本番環境で非同期にならない事」を前提として知っておくべきでした。

解決方法は、簡単でした。

ターミナルでログ確認確認

heroku logs --tail --app <アプリ名>

エラー文発見

Gem::LoadError 
(Specified 'redis' for Action Cable pubsub adapter, but the gem is not loaded. Add `gem 'redis'` to your Gemfile  

どうやらAction Cableの為の「redis」gemを加えてください、と言われている模様。
そんなgemを導入する話は聞いておりませんでした...。

解決方法

色々調べた結果、2つのファイルを下記に修正することがわかりました。


config.action_cable.allowed_request_origins = [ /http:\/\/.*/ ]

リクエストをネット環境でも許可

production:
  adapter: async

production(本番環境)のadapterをasyncに変更。development(開発環境)と同じ文面にする。コピペでOK。


これで無事にデプロイできました。
と思いましたが、次のエラーが発覚。ページによって、We're sorry, but something went wrong.と出る。
無事解決しております。また次回解決した方法を記載していきます。