質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

受付中

rails アプリをデプロイしたがWe're sorry, but something went wrong.となる

iyonegaki
iyonegaki

総合スコア19

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

1回答

0評価

0クリップ

317閲覧

投稿2021/12/30 12:17

編集2022/01/12 10:55

前提・実現したいこと

タイトルの通りrails アプリをデプロイしたのですがWe're sorry, but something went wrong.と出てしまいました.
具体的には,問題を解くようなアプリで解答画面から答え合わせのボタンを押すとエラー画面が出てきます.
イメージ説明
↓答え合わせボタンを押す
イメージ説明

理想はこのような画面に遷移したいです,ローカルだと動きます
イメージ説明
デプロイはこのサイトを参考にしました.

発生している問題・エラーメッセージ

IPアドレス - - [30/Dec/2021:08:53:53 +0000] "GET /student/answer HTTP/1.1" 200 4598 "http://サーバのIPアドレス/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "-" IPアドレス - - [30/Dec/2021:08:54:10 +0000] "POST /student/answer/answer_check HTTP/1.1" 302 119 "http://サーバのIPアドレス/student/answer" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "-" IPアドレス - - [30/Dec/2021:08:54:10 +0000] "GET /student/answer/result HTTP/1.1" 500 1635 "http://サーバのIPアドレス/student/answer" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "-"

試したこと

同じような挙動をした画面が一部あったのですが,そっちは画像をコンパイルしていなかったという理由でした.
EC2を再起動したりしたのですが,特に変化がありませんでした.

初めてのデプロイでわからないことが多々あるかもしれませんが,ご教授お願い致します.
また実際に動かして挙動を確認したいということでしたらIPアドレスも載せるので申しつけください.
よろしくお願いします.

環境

ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
Ruby on Rails 5.2.6
MySQL
Nginx
Unicorn 5.4.1

追記

汚いですが,このようなコードを書きました.

コード

ビュー

解答画面
show.html.erb

<div class="answer-wrapper"> <h1>問題解答</h1> <h4 class="answer-label-title">それぞれのユーザーに対する危険度を解答してください</h4> <br> <%= form_with model: @answer, url: student_answer_answer_check_path, local: true do |form| %> <% @virtual_users.each do |virtual_user| %> <p class="answer-label-title"><%= form.label :virtual_user_id, virtual_user.name %>の危険度</p> <%= form.label :danger_level, '危険度' %> <%= form.select(:"danger_level[#{virtual_user.id}]", [["現状情報の流出はない", 1], ["今後の投稿次第では危険", 2], ["個人情報が流出している", 3]], {prompt: "危険度を選択してください"}) %> <br> <br> <% end %> <%= form.submit "答え合わせ" %> <% end %> </div>

採点結果の画面
result.html.erb

<div class="answer-wrapper"> <h1>採点結果</h1><h4>正解 <%= @num_of_correct %>問/<%= $result.length %>問</h4> <br> <% $result.each do |virtual_user_id, student_ansewer| %> <h4 class="answer-label-title"> <%= @answers.find_by(virtual_user_id: virtual_user_id).virtual_user.name %>の危険度 </h4> <h5>解答</h5> <span> <% if student_ansewer == 1 %> 現状情報の流出はない <% elsif student_ansewer == 2 %> 今後の投稿次第では危険 <% elsif student_ansewer == 3 %> 個人情報が流出している <% else %> 未回答 <% end %> </span> <h5>正解</h5> <span> <% if @answers.find_by(virtual_user_id: @answers.find_by(virtual_user_id: virtual_user_id).virtual_user).danger_level == 1 %> 現状情報の流出はない <% elsif @answers.find_by(virtual_user_id: @answers.find_by(virtual_user_id: virtual_user_id).virtual_user).danger_level == 2 %> 今後の投稿次第では危険 <% elsif @answers.find_by(virtual_user_id: @answers.find_by(virtual_user_id: virtual_user_id).virtual_user).danger_level == 3 %> 個人情報が流出している <% end %> </span> <div> <h5>解説</h5> <span>解説が入ります解説が入ります解説が入ります解説が入ります解説が入ります解説が入ります解説が入ります解説が入ります解説が入ります解説が入ります</span> </div> <br> <% end %> </div>

モデル

virtual_user.rb

# == Schema Information # # Table name: virtual_users # # id :integer not null, primary key # catch_copy :text # follow :integer # follower :integer # image :string # name :string # sub_name :string # created_at :datetime not null # updated_at :datetime not null # class VirtualUser < ApplicationRecord # 関連 has_many :posts, dependent: :destroy has_many :follows, dependent: :destroy has_many :followings, through: :follows, source: :follower has_many :passive_follows, class_name: 'Follow', foreign_key: 'follower_id', dependent: :destroy has_many :followers, through: :passive_follows, source: :virtual_user has_many :goods has_many :favorites, through: :goods, source: :post has_one :answer, dependent: :destroy # 委譲 def followings_count; followings.count; end def followers_count; followers.count; end # バリデーション validates :name, presence: true validates :sub_name, presence: true end

answer.rb

# == Schema Information # # Table name: answers # # id :integer not null, primary key # danger_level :integer # created_at :datetime not null # updated_at :datetime not null # virtual_user_id :integer # class Answer < ApplicationRecord # 関連 belongs_to :virtual_user # バリデーション validates :virtual_user_id, uniqueness: true validates :danger_level, presence: true end

コントローラー

class Student::AnswersController < ApplicationController before_action :set_virtual_users, only: [:show] before_action :set_answers, only: [:result] def show end def answer_check $result = [] params[:danger_level].each do |key, value| key = key.to_i value = value.to_i set_answer(key) buf = [key, value] if value == @answer.danger_level buf.push(1) $result.push(buf) else buf.push(0) $result.push(buf) end end redirect_to student_answer_result_path end def result @num_of_correct = 0 $result.each do |result| if result[2] == 1 @num_of_correct += 1 end end end private def set_virtual_users @virtual_users = VirtualUser.all end def set_answers @answers = Answer.all end def set_answer(answer_id) @answer = Answer.find_by(virtual_user_id: answer_id) end end

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。