🐡

Heloku de デプロイでのエラーについて

2 min read

いつも今日のエラーというタイトルだけど、すごい抽象的なので、見返したときに分かるように工夫していこう!
ということで、今日のタイトルになりました!

デプロイ

デプロイとは、簡単に言うと、ネットワークを通してWEBアプリケーションを公開して使えるようにすること

今週のエラー祭りアプリケーションはHelokuというサーバーサービスを利用してデプロイをする

Herokuにデプロイする際には、Gitの仕組みを使用し,
Gitで管理しているリポジトリをHerokuへ反映することで、Heroku上で該当するアプリケーションの操作が可能になる

今日のエラー

今日発生したエラーの経緯
Helokuにデプロイし、挙動確認をしてもらい、GitHubでLGTMしてもらうまでのながれ。

エラーその1

Helokuにデプロイ後に、公開したwebアプリケーションのURLを入力したときに起きた。

https://gyazo.com/c7d17c7ad8de106dd5bbb6cd4788180d

新しいタイプのやつやん。
カリキュラムに沿って確認する。

こういうときはログを表示させて確認するらしい。

ターミナル

heroku logs --tail --app <<アプリケーション名>>

そうすると

むむむ?
中に、

ActionView::Template::Error (Mysql2::Error: Table 'heroku_56490630b88570d.prototypes' doesn't exist):

と書いてある。

なるほど、MysqlってことはDB関係かな!

ここで、大野はHeloku上でマイグレーションをしていなかったことに気づく。

heroku run rails db:migrate

※Helokuでマイグレーションをするときは、「heroku run」を忘れずに!

この後、無事にアクセスできました!

エラーその2

挙動を確認してもらい、エラーを指摘していただいた。

内容は、コメント投稿機能で空のコメントでは保存されない。
→現在、入力欄が空の状態で投稿ボタンを押すとエラー画面に遷移
→自分で投稿したプロトタイプの詳細ページにて発生しております。他ユーザーはLGTM

https://gyazo.com/c7d17c7ad8de106dd5bbb6cd4788180d

つまり、自分が投稿した内容に空でコメントするとエラーになるが、他の人が投稿した内容に空でコメントするとrenderが適用されているということ

仮説
1.commentsコントローラーでのアクションが定義できていない
2.ログイン時のみのエラーなので、html.erbファイルでの記述ミスor抜けがある

1の仮説から検証
多分大丈夫!

2の仮説検証

<% if user_signed_in? && current_user.id == @prototype.user_id %>
        <div class="prototype__manage">
          <%= link_to "編集する", edit_prototype_path, class: :prototype__btn %>
          <%= link_to "削除する", prototype_path(@prototype.id), method: :delete, class: :prototype__btn %>
        </div>

ん?
むむむ?
詳細ページに行くところで(@prototype.id)が抜けている!

なるほど!
ログイン時の記述がミスってるから、他ユーザーのコメントが空なのは大丈夫だったのか!

でもなんでこんなミスをしたのだろうか。
思いつくのは、昨日のエラー

https://zenn.dev/j_09/articles/1d81f0d16192dc

おそらく、ユーザーの情報を観るためのページに遷移するときに、消しちゃったのかな?

無事解決できてよかった!