🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Q&A

解決済

1回答

660閲覧

Ruby on Railsで作成したアプリをherokuにデプロイ後に発生したエラーについて

Angelica.87

総合スコア9

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

0グッド

0クリップ

投稿2021/03/16 06:11

編集2021/03/16 07:52

前提・実現したいこと

ローカル環境時は問題なく表示されていたが、herokuにデプロイしたアプリのログイン画面を表示しようとしたところ下記のようなエラーメッセージが表示されたので原因の調査方法と解決方法をご教授願いたい。

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

We're sorry, but something went wrong. If you are the application owner check the logs for more information.

該当のソースコード

初学者なりに考えるとrootに問題があるのかと思うので下記のとおりコードを載せます。
root'hello#index'は無事に表示されたが、get'hello/login_check'に接続したところ上記のエラーメッセジが表示された。

ruby

1Rails.application.routes.draw do 2 root 'hello#index' 3 get 'hello/login_check' 4 ・・・ 5 # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html 6end 7

ruby

1#hello_controller.rb 2class HelloController < ApplicationController 3 layout 'application' 4 before_action :authenticate_account!, only: :login_check 5 6 def index 7 @msg = 'this is sample page.' 8 end 9 10 def login_check 11 @account = current_account 12 @msg = 'account created at: ' + @account.created_at.to_s 13 @id = [1,2,3] 14 @url = ["/hello/search_category/","/hello/category/","/notes/"] 15 @category = ["Shopping#search","Shopping#category","Shopping#note"] 16 end 17・・・

ruby

1#login_check.html.erb 2<h1 class="display-4 text-primary"><%= "Hello#" + @account.email %></h1> 3<p><%= @msg %></p> 4<p><a href="/hello/login_check/">Home</a></p> 5<table class="table"> 6 <tr> 7 <th>Id</th><th >category</th> 8 </tr> 9 <% @id.zip(@url,@category) do |id,url,category| %> 10 <tr> 11 <td><%= id %></td> 12 <td><a href=<%= url %>><%= category %></a></td> 13 </tr> 14 <% end %> 15</table> 16<div><%=link_to '&lt;&lt;go back'.html_safe,{action:'index'} %></div> 17

試したこと

インターネットで調べたところ原因は様々とのことだったので原因の調査をしないといけないと思うが、初学者のため
調査方法が分からない。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FKM

2021/03/16 06:52

ビューを見せてもらわないとなんともいえません。 あと、エラーログを見ろと警告してるので、エラーログを確認してください。
Angelica.87

2021/03/16 07:12

viewsフォルダーのlogin_check.html.erbは以下のとおりです。 <h1 class="display-4 text-primary"><%= "Hello#" + @account.email %></h1> <p><%= @msg %></p> <p><a href="/hello/login_check/">Home</a></p> <table class="table"> <tr> <th>Id</th><th >category</th> </tr> <% @id.zip(@url,@category) do |id,url,category| %> <tr> <td><%= id %></td> <td><a href=<%= url %>><%= category %></a></td> </tr> <% end %> </table> <div><%=link_to '&lt;&lt;go back'.html_safe,{action:'index'} %></div> 参考にコントローラーも追記します。 hello_controller.rb lass HelloController < ApplicationController layout 'application' before_action :authenticate_account!, only: :login_check def index @msg = 'this is sample page.' end def login_check @account = current_account @msg = 'account created at: ' + @account.created_at.to_s @id = [1,2,3] @url = ["/hello/search_category/","/hello/category/","/notes/"] @category = ["Shopping#search","Shopping#category","Shopping#note"] end 初学者で申し訳ないのですがエラーのログはどこで確認すればよろしいでしょうか?
FKM

2021/03/16 07:33

質問の方に追記してもらっていいですか。こっちだとタグの成形できないので。
FKM

2021/03/16 07:36

プロジェクト > log > development.log です
Angelica.87

2021/03/16 07:56

質問に追記しました。 デスクトップに保存したものをherokuに上げたのですが、デスクトップ上のプロジェクトを確認するという理解でよろしいでしょうか?
FKM

2021/03/16 08:02 編集

そのエラーは調べてみたらError500でも出るらしいです。 だとすると、ビュー内の構文ミスである可能性があるので、一度エラーログにError500が出ていないかどうか確認してもらっていいですか
Angelica.87

2021/03/16 08:08

デスクトップ上のプロジェクト>log> development.logというファイルを確認したのですが 57635行の書き込みがあってどこにError500があるのか確認するのが難しい状況なのですが、 調べ方が悪いのでしょうか?
FKM

2021/03/16 08:14

Completed 500 Internal Server Error この文字を検索してみてください
Angelica.87

2021/03/16 08:20

Atomエディタを使用しているのですがご指導いただいたもので検索したところ Completed 500 Internal Server Error in 71ms (ActiveRecord: 0.0ms | Allocations: 5183) Completed 500 Internal Server Error in 46ms (ActiveRecord: 1.2ms | Allocations: 4097) ・・・ 88件の検索結果が表示されました。
FKM

2021/03/16 08:23

今日や直近の日付のものはないですか?
Angelica.87

2021/03/16 08:31

今日の日付はないです。 今日起こったエラーなのですが、直近は2021.3.11です。 これはデスクトップ上のアプリではなく、サーバー側に上げたアプリの development.logを確認しないといけないということなのでしょうか? ちなみに直近のエラーログは以下のとおりです。 Started GET "/notes/index" for ::1 at 2021-03-11 18:08:47 +0900  (0.2ms) SELECT sqlite_version(*) Processing by NotesController#index as HTML  (0.6ms) SELECT COUNT(*) FROM "notes" ↳ app/controllers/notes_controller.rb:4:in `index' Note Load (1.7ms) SELECT "notes".* FROM "notes" ↳ app/controllers/notes_controller.rb:5:in `index' Completed 500 Internal Server Error in 52ms (ActiveRecord: 6.4ms | Allocations: 6553)
FKM

2021/03/16 08:44

Completed 500 Internal Server Error in 52ms (ActiveRecord: 6.4ms | Allocations: 6553) これですよね?
guest

回答1

0

ベストアンサー

500エラーが出ているということはhtml側に問題が発生しているということです。そこでテンプレートに絞って調べてみたのですが

erb

1 <% @id.zip(@url,@category) do |id,url,category| %> 2 <tr> 3 <td><%= id %></td> 4 <td><a href=<%= url %>><%= category %></a></td> 5 </tr> 6<% end %>

ここが怪しいですね。doってことはループ実行ですが、この構文が間違ってそうです。

投稿2021/03/16 08:47

FKM

総合スコア3647

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Angelica.87

2021/03/16 21:15

@idには数字を入れて、@urlにはローカル環境時のurlを入れていて、@categoryには文字列を入れているのですが、この場合怪しいのはローカル環境時のurlを入れていた@urlになりそうでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問