前提・実現したいこと
Ruby on railsでWEBアプリを作っていまして、Twitter的な物を作っている途中です。
そこで自分の投稿だけを自分の所に表示させようとしています。
発生している問題・エラーメッセージ
undefined method `posts' for nil:NilClass
と出ていて
該当のソースコード
<% @user.posts.each do |post| %> <li class="list-group-item"> <div class="row align-items-center no-gutters"> <div class="col mr-2"> <h6 class="mb-0"><%= post.content%></h6> <span class="text-xs"><%= post.created_at %></span> </div> <div class="col-auto"> <% if @post.user_id == @current_user.id %> <%= link_to("編集", "/users/#{post.id}/destroy",method: "post",class:'btn btn-success') %> <%= link_to("削除", "/users/#{post.id}/destroy",method: "post",class:'btn btn-danger') %> <% end %> </div> </div> </li> <% end %>
post.rb
def user return User.find_by(id: self.user_id) end
user.rb
def posts return Post.where(user_id: self.id) end
試したこと
調べてみたりしたのですが、同じようなケースの記事等出てこなくて立ち往生してしまい、質問させて頂くことになりました。
初めての質問で至らぬ点があるかと思います、申し訳ございません。
必要な情報が不足してる等がありましたら教えてください。
postsメソッドを@userに対して行おうとしていますが、
そもそも@userがnilだからそのメソッドを使えない、
というようなエラーかと思います。
@userを定義しているcontrollerの中身も書いていただいた方がいいかもしれません。