Help us understand the problem. What is going on with this article?

初学者のメモ デプロイ後のエラー文を確認する方法

はじめに

プログラミングを初めて4ヶ月目に突入した初学者です。
デプロイ時にエラーが発生しましたが、エラー内容を確認方法が分からず躓いたのでメモを残します。
Qiita初投稿の為、暖かい目で見て頂ければと思います。

環境

 開発
 ・Ruby '2.3.8'
 ・Rails '5.2.3'
 ・vagrant

 デプロイ
 ・AWS
 ・nginx
 ・unicorn

エラー

ローカル環境ではエラーが発生しなくても、デプロイ後エラーが出ることがあります。
デプロイ後にエラーがあると以下の画面が表示されます
スクリーンショット 2019-08-22 5.55.05.png
これだけでは、エラーの原因は分かりません。
We're sorry, but something went wrong.をGoogleで検索しても様々な記事(原因)が出てくるのでエラー箇所を絞ることが出来ませんでした。
また、Google chromeの検証機能をしようして同様にエラー箇所を絞ることが出来ませんでした。

エラーログを確認するには・・・

エラー箇所の絞るにはログをみる必要があります。
ログは以下の場所で確認することが出来ます。
・デプロイ後のログ確認
 ”アプリケーション名/log/production.log”
・開発中でのログ確認
 ”アプリケーション名/log/development.log”

エラーログの確認方法

「ターミナル」
 1. EC2にssh接続する
 2. $ cd /var/www/html/アプリケーション名でに移動する。
 3. $ cat log/production.logを実行する。
スクリーンショット 2019-08-22 6.28.44.png
 4. 実行すると今までのログが表示されます。
  今回のエラー箇所は下から8、9行目になります。
   ActionView::Template::Error (Mysql2::Error: FUNCTION portfolio.RANDAM does not exist: SELECT users .* FROM users ORDER BY RANDAM()):

エラー箇所の修正

ランダム表示を今回実装したのですが、記述が正しくなかったのでエラーが発生したようです。
・修正前
@users = User.order("RANDAM()").all
・修正前
@users = User.order("RAND()").all
mysqlではRANDしか使用出来ないみたいです。

※今回はEC2環境で変更しています。sudo vi app/controllers/エラー箇所のコントローラ名

デプロイ環境に変更を適応させる

今回はunicornを使用しているのでsudo service unicorn restartを実行します。
これでエラーは解消され、正しく表示されました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away