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にはどのような手段で行ってもエラーになってしまいます(ページ上のリンクから行っても、アドレスを直接入力しても)
エラーメッセージも記載しましょう。また、データはどこにどのように保存していますか?
エラーメッセージは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にアップロードしました。
申し訳ありませんでした。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] "/"):
が見つかりました。
こちらでも解決策を探しますが、情報いただけたら助かります。
先ほどもう一度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".
create_at じゃなくて created_at かも?

回答1件
あなたの回答
tips
プレビュー