質問: Ruby on railsでwebサービスを作っており、掲示版機能を作ったのですが、掲示版に表示させるnameとuser_idを紐づけることができずに困っています。また掲示板に投稿した人しか編集や削除ができな機能も実装したいと思っています。 ・nameとuser_idを結びつけ、書き込んだ人の名前がユーザーidの隣に表示されるようにしたい ・投稿した人だけが編集、削除をできる掲示板を作りたい 以上の2点を教えてください。詳細は下に書いています。 Userモデルにnameカラム、Postモデルにuser_idカラムがあります。 掲示板を表示させるのはshow.html.erbです。 下の画像がshow.html.erbです。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/f1511bf796895efd94c5458e4fb3ba27.png) posts_controller def show @posts=Post.page(params[:page]).per(PER) end show.html.erb <% @posts.each do |post| %> <%=post.id%> ユーザーID: <%=post.user_id%> <%=post.created_at.strftime("%Y-%m-%d %H:%M")%> /edit">編集 " data-method="delete">削除 <%=post.body%> <% end %>
回答: ・nameとuser_idを結びつけ、書き込んだ人の名前がユーザーidの隣に表示されるようにしたい `<%=post.user_id%>`の横に、`<%= post.user.name %>`でpostに関連づいたuserのnameを表示できます。前提として、Postモデルに`belongs_to :user`が記入されている必要があります。 ・投稿した人だけが編集、削除をできる掲示板を作りたい ユーザーにログインさせ、その状態をセッションに持たせる必要があります。この辺りを参考に実装してみてください。