Herokuにデプロイした際にエラー
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
そもそもアプリが表示されないエラーに対する解決コードは【Rails5】ローカルでは動くが、Herokuで動かない。より
heroku pg:reset DATABASE
heroku run rake db:migrate
を打つことで解決。
特定のページを開くとエラー
The page you were looking for doesn't exist.
You may have mistyped the address or the page may have moved.
セッション情報が既に存在し、それに対応するデータベースが存在している段階では問題なく動いていたものの、コードの記述変更やsession情報が空であった際の処理などを記述した後で
git push heroku master
を実行した際に接するエラーがこれ。
Heroku公式サイト open app右のバーより、logsを確認すると
dbをリセットしてmigrateした為にデータベースが存在しないにも関わらず
session[:id]に対応するデータベースカラムが見つかりません!
というエラーを吐いていることが確認できる。
ローカル環境で再現
herokuで問題が起きている原因はデータベースがないにも関わらず、それを参照しているsessionが引っかかっていることによって起きているので、ローカル環境でもデーターベースをリセットする。
すると、全く同じエラーが発生していることに気がつく。
sessionが存在しない情報を保持していることが問題なので
<% session[:任意] = nil %>
をエラーを吐くページ及び、session情報を送信するページに記述することでsession情報を空にする。
すると問題なく、データベースが存在しない際に、データは空ですと記述を加えたページがエラーなく表示されるようになる。
なぜエラーが起きたのか
上記に書いた通り、一連のエラーは全てsessionが原因である。
「sessionは一時的にCookieのように働く仕組み〜・・」的な曖昧な知見で利用すると、発生したエラーを特定するまでにしばらくかかりました・・。
パスもコードも正しく記述出来ている筈なのに、なぜ表示されないのだろうとググって拾ったコードを試してみても解決されない場合は、まずlogsを確認して問題点を見つけるのが大事だと学びました。