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

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

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

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

Ruby on Rails 6

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

Q&A

0回答

494閲覧

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

Angelica.87

総合スコア9

Ruby

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

Ruby on Rails 6

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

0グッド

0クリップ

投稿2021/03/23 22:32

前提・実現したいこと

前提
開発時にローカル環境でテストした際には問題なくアプリは動いていたが、
ウェブに公開したところログイン前の画面については問題なく動いたが、
ログイン画面を開こうとすると以下のようなエラー画面が表示されてしまう。

実現したいこと
作成したアプリをウェブ上でも動かしたい。

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

最初のアクセス時は問題なく動いているが、ログイン画面に進もうとすると以下のようなエラー画面が表示される。

最初のアクセス時
イメージ説明

login_check page!>>をクリックすると以下のエラー画面が表示される。
イメージ説明

該当のソースコード

参考に該当するrootとcontrollerとview情報を載せます。

ruby

1#routes.rb 2Rails.application.routes.draw do 3 root 'hello#index' 4 get 'hello/login_check' 5 ・・・

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#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

erb

1#index.html.erb最初のログイン時に使用するもの 2 3<h1 class="display-4 text-primary">Shopping#hello</h1> 4<p><%= @msg %></p> 5<hr> 6<div><%= link_to 'login_check page!&gt;&gt;'.html_safe,{action:'login_check'} %></div> 7<div><%= link_to "Sign out&gt;&gt;".html_safe,destroy_account_session_path,method: :delete %></div> 8

erb

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

試したこと

railsで公開する際にはrootを修正する必要があるとのことなので一番最初にアクセスするものについては以下のように修正した。
get 'hello/index' => root 'hello#index'

続けてログイン画面に進むために使用するrootも修正が必要なのではと思っている。
get 'hello/login_check' => root 'hello#login_check'

併せて以前質問した際に得られた情報としてdevelopment.logを調べたところ
直近のエラーメッセージでCompleted 500 Internal Server Error in 52ms (ActiveRecord: 6.4ms | Allocations: 6553)
と出ていることが分かり、これは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 %>

ここまでの情報で次にどのように動けば良いのかご教示願いたいです。

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

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

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

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

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

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

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

maisumakun

2021/03/23 22:39

サーバ上のファイルに出力されているエラーログは確認できますか?
Angelica.87

2021/03/24 11:26

maisumakunさん追記の依頼ありがとうございます。 私自身herokuにデプロイしたのが始めてでして、サーバ上のファイルに出力されているエラーログの確認方法が分からないのでご教授いただきたいです。 本当に初心者で申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問