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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

957閲覧

ローカル環境では正常なのにHerokuでposts/indexに行くとエラーになってしまう

psaq

総合スコア0

Heroku

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/10/02 15:22

https://teratail.com/questions/361918にてポートフォリオサイトのデプロイには成功したのですが、投稿した文章の一覧であるposts/indexに移動しようとすると途端にエラーが発生してページが表示されなくなる現象が頻発します。ローカル環境ではこのようなエラーは起きないためエラーの原因が掴めずにいるのですが、以下に記した関係のありそうな記述からエラーの原因が分かる方がいましたら教えていただけると助かります。

posts.index.html

<h1>投稿した文章</h1> <p>文字列をクリックすると文章を投稿した日時が表示されます</p> <% @posts.each do |post| %> <div class="posts-inex-item"> <%= link_to(post.content, "/posts/#{post.id}") %> <div class="post-user-name"> <%= link_to(post.user.name, "/users/#{post.user.id}") %> </div> </div> <% end %>

posts_controller.html

class PostsController < ApplicationController before_action :authenticate_user,{only:[:new]} before_action :ensure_correct_user,{only:[:edit,:update,:destroy]} def index @posts = Post.all.order(create_at: :desc) @user = User.all end def show @post = Post.find_by(id: params[:id]) @user = User.find_by(id: @post.user_id) end def new @post = Post.new @users = User.all end def create @post = Post.new(content: params[:content], user_id: @current_user.id) @post.save redirect_to("/posts/index") end def edit @post = Post.find_by(id: params[:id]) end def update @post = Post.find_by(id: params[:id]) @post.content = params[:content] @post.save redirect_to("/posts/index") end def destroy @post = Post.find_by(id: params[:id]) @post.destroy redirect_to("/posts/index") end def ensure_correct_user @post = Post.find_by(id: params[:id]) if @post.user_id != @current_user.id flash[:notice] = "権限がありません" redirect_to("/posts/index") end end end

routes.rb

Rails.application.routes.draw do get "signup" => "users#new" get 'posts/index' get "users/index" => "users#index" get "users/login_form" => "users#login_form" get "login" => "users#login_form" post "login" => "users#login" get "logout" => "users#logout" post "logout" => "users#logout" get 'home/top' get 'home/about' get "posts/new" => "posts#new" post "posts/create" => "posts#create" get "users/create" => "users#create" post "users/create" => "users#create" get "users/:id" => "users#show" get "posts/:id" => "posts#show" get "posts/:id/edit" => "posts#edit" post "posts/:id/update" => "posts#update" post "posts/:id/destroy" => "posts#destroy" get "users/:id/edit" => "users#edit" post "users/:id/update" => "users#update" # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end

そのほか必要そうなファイルがありましたら適宜追加いたします。
なお、posts/index.htmlにはどのような手段で行ってもエラーになってしまいます(ページ上のリンクから行っても、アドレスを直接入力しても)

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

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

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

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

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

hoshi-takanori

2021/10/02 19:45

エラーメッセージも記載しましょう。また、データはどこにどのように保存していますか?
psaq

2021/10/03 01:37

エラーメッセージはposts/indexにアクセスしたときのものであれば We're sorry, but something went wrong. If you are the application owner check the logs for more information. と出ます。 エラーログですが、サーバー環境側のエラーログをどうやれば見られるのかが調べても分かりませんでした...(loggerなどそれらしいものは見つけられたのですが) herokuにデプロイしている元のデータはgithubに保存しており、 https://github.com/KS0908/sk12498 に保存してあります。 ローカル環境では自分のパソコンにこのwebサイトと同じデータが存在しており、そこからgithubにアップロードしました。
psaq

2021/10/03 23:18

申し訳ありませんでした。heroku logsで本番環境のエラーが見つかりました。 2021-10-03T01:20:15.165671+00:00 app[web.1]: [89e48ffd-6b84-434c-bb57-8fb009531832] ActionView::Template::Error (PG::UndefinedColumn: ERROR: column "create_at" does not exist 2021-10-03T01:22:49.478430+00:00 app[web.1]: [7d38e019-2c41-46d1-b496-8952d5980c35] ActionView::Template::Error (PG::UndefinedColumn: ERROR: column "create_at" does not exist 2021-10-03T03:10:38.294231+00:00 app[web.1]: [3926b9d2-55a8-4edf-bd30-7c6a486c9208] ActionController::RoutingError (No route matches [GET] "/"): が見つかりました。 こちらでも解決策を探しますが、情報いただけたら助かります。
psaq

2021/10/03 23:33

先ほどもう一度posts/indexにアクセスしてエラーを出し、新しくheroku logsを取りました。 そのときのエラー分を記載します(下にヒントのようなものもあったのでそれも追加します) 2021-10-03T23:26:32.330305+00:00 app[web.1]: I, [2021-10-03T23:26:32.330141 #4] INFO -- : [be2b7267-e650-49ad-a9b1-955d274e3c74] Completed 500 Internal Server Error in 15ms (ActiveRecord: 5.9ms | Allocations: 2625) 2021-10-03T23:26:32.331982+00:00 app[web.1]: F, [2021-10-03T23:26:32.331917 #4] FATAL -- : [be2b7267-e650-49ad-a9b1-955d274e3c74] 2021-10-03T23:26:32.331983+00:00 app[web.1]: [be2b7267-e650-49ad-a9b1-955d274e3c74] ActionView::Template::Error (PG::UndefinedColumn: ERROR: column "create_at" does not exist 2021-10-03T23:26:32.331984+00:00 app[web.1]: LINE 1: SELECT "posts".* FROM "posts" ORDER BY "create_at" DESC 2021-10-03T23:26:32.331984+00:00 app[web.1]: ^ 2021-10-03T23:26:32.332134+00:00 app[web.1]: HINT: Perhaps you meant to reference the column "posts.created_at".
hoshi-takanori

2021/10/03 23:34

create_at じゃなくて created_at かも?
guest

回答1

0

自己解決

posts_controller.htmlの

@posts = Post.all.order(create_at: :desc)

@posts = Post.all.order(created_at: :desc)

に変えることにより閲覧が可能になりました。ありがとうございました。

投稿2021/10/04 12:37

psaq

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問