railsで、ユーザーの投稿に対するコメント機能を作りたいと思っているのですが、投稿に関連付いたコメントをうまく表示できず、解決策を教えていただきたいです。表示はユーザーのマイページ(show.html.erb)にしたいと考えています。
userモデル、postモデル、commentモデルを作成し、それぞれを以下のように関連付けています。
class User < ActiveRecord::Base has_many :posts, dependent: :destroy has_many :comments, dependent: :destroy class Post < ActiveRecord::Base belongs_to :user has_many :comments, dependent: :destroy class Comment < ActiveRecord::Base belongs_to :user belongs_to :post
また、Userのコントローラのshowアクションは以下のようにしております。
def show @user = User.find(params[:id]) @posts = @user.posts @posts.each do |post| @comments = post.comments end end
ユーザーのshow.html.erbの投稿表示の部分は、
<ol class="posts"> <%= render @posts %> </ol>
_post.html.erbを、
<li> <span><%= post.title %></span> <span><%= post.content %></span </li> <%= render @comments %>
_comment.html.erbを、
<li> <span><%= comment.user.username %></span> <span><%= comment.comment %></span> </li>
投稿作成、コメント作成のコードは記載しておりませんが、
User1に関連付いた、Postは2件作成しており、
Post1,Post2に関連付いたCommentはそれぞれ数件作成しております。
現在のコードでUserのshowページを見ると、
Post1とPost2の両方に、Post1のCommentが表記されています。
これをそれぞれのPostに関連付いたCommentを表示するにはどうすればよろしいでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/30 03:00