rails indexページに閲覧数を表示させたいのですが、ActiveRecord::RecordNotFoundエラーが出てしまいます。 初心者のため凡ミスかもしれません
解決したいこと
posts/indexページに閲覧数の表示をしたいです
発生している問題・エラー
ActiveRecord::RecordNotFound in PostsController#index
Couldn't find Post without an ID
@post_like_count = Like.where(post_id: @posts.pluck(:id)).group(:post_id).count
@post_comments_count = Comment.where(post_id: @posts.pluck(:id)).group(:post_id).count
@post_detail = Post.find(params[:id])<ーーここ
該当するソースコード
posts_controller.rb
def index
@posts = Post.all.order(created_at: :desc).page(params[:page])
@post_like_count = Like.where(post_id: @posts.pluck(:id)).group(:post_id).count
@post_comments_count = Comment.where(post_id: @posts.pluck(:id)).group(:post_id).count
@post_detail = Post.find(params[:id])<ーー エラー
end
def show
@post = Post.find_by(id: params[:id])
@user = @post.user
@likes = Like.where(user_id: @user.id)
@likes_count = Like.where(post_id: @post.id).count
@comments_count = Comment.where(post_id: @post.id).count
@comment = Comment.new
@comments = @post.comments.includes(:user)
@post_detail = Post.find(params[:id])
if @current_user.present?
unless ViewCount.find_by(user_id: @current_user.id, post_id: @post_detail.id)
@current_user.view_counts.create(post_id: @post_detail.id)
end
end
end
posts/index.html.erb
<span class="fa fa-eye"></span>
<%= @post_detail.view_counts.count %>
posts/show.html.erb
<span class="fa fa-eye"></span>
<%= @post_detail.view_counts.count %>
最後まで読んでいただきありがとうございます
教えていただけると幸いです。
0