Ruby on rails を学習中の方の参考にしてもらえたら嬉しいです。
アプリケーションを作成している時に出てくるエラーとその解決方法について掲載します。少しでも参考にしていただけると幸いです。
今回は今回はRuby on railsで作成したアプリをherokuにデプロイした際に起きたエラーの解決方法をお話しします。
はじめに
今回のエラーはherokuにデプロイができているのにサイトが表示されないというエラーを解決していきます。
どこからエラーを見つけて、どうやって解決していったのか?というヒントになれば幸いです。
エラーを確認します
デプロイした時にこんなエラーが出ることがあります。コレは以下の画像のように内容を翻訳してみると解決策を探せます。
ということでデプロイしたアプリのシークレットキーがアプリに書き込んだシークレットキーと合っているか確認します。
確認後に再度デプロイしても以下のようにエラーになってしまいました。
次にエラーをターミナルで確認してみます。
エラーを表示している文章にログを確認しろと言っていたので、確認してみます。
確認にはこのようなコマンドを使います
heroku logs --tail --app (〇〇-〇〇-production)
上記の()の中の名前はherokuで使っているアプリ名を入れます
ターミナルでコマンドを入れると以下のようなメッセージが出てくるので、ChatGPTに読み込ませます↓
こんな答えが返ってきました。
上記の画像の返答からajaxのコードに間違いがあるんじゃないかと考えましたが、1のクラッシュしている云々の方を探るためにherokuのログを確認することにしました。↓
herokuのエラーログを確認する
アプリのアクティビティーログを確認すると赤い表示の部分があります。これをクリックして出てきたエラーメッセージをChatGPTに読ませます↓
いよいよエラーの本丸に迫ります
上記の画像からの回答は以下のように出ました↓
上記の画像からこのエラーを解決するには、Rails.application.load_serverというメソッド呼び出しを調査し、修正が必要です。存在しないメンッドを呼び出すことはできないため、その呼び出しを修正するか、もしくは、必要に応じてそのメソッドを定義する必要があります。
という一文に注目してRails.application.load_server
という記述を確認してみます。
以下のようにvscodeで検索をかけて見つかりました。
こんなコードを書いた覚えはないのですが、バージョンを更新をした時か、rails newした時に書かれたものかと思います。
上記の記述の中のコードをどのように修正したら良いかをChatGPTに聞いてしまいます↓
質問に対する返答はこうです↓
なんと、ありがとうございます。
不要ということで、以下の画像のように削除しました。
削除したことをコミット&プッシュしてデプロイし直すと・・・
🎉じゃーん🎉
アプリがちゃんとデプロイされて表示されるようになりました。挙動も正しく動いているようなので、今回のエラーはコレにて一件落着です。
最後に
いかがでしたでしょうか?
今回はアプリケーションをデプロイできた後のエラーを解決していきました。メッセージに出ている文言を頼りにメッセージが何を表しているのか?どこに誤りがあるのかを確認していけば必ず解決できるはずです。
ちなみに、今回のエラーの解決はおそらくChatGPTが無かったらかなりの時間がかかったと思います。
自分が書いていていないコードに誤りがあったという発想は私にはできませんでした。
なので、プログラミング初学者の方はChatGPTを活用した方がや早く技術を習得できると思います。
エラーを丸ごと読み込ませてヒントをもらうこれがスキルアップの近道だと思います。
他にも記事を発信していきますので、私の QiitaやTwitterをフォローしていただけると嬉しいです。
個別の質問もぜひ歓迎します。
私自身、初学者ではありますが、1歩先を行くものとして回答できたらと思います。
それでは。