获得所有评论

时间:2014-01-05 09:50:15

标签: ruby-on-rails

我有两个模型:帖子和评论。每条评论都属于一个帖子。我想有一个所有评论的页面,而不仅仅是帖子的评论。我似乎无法让这个看似简单的事情发挥作用。

这是我的控制器:

def top
  @topcomments = @comments.order("created_at desc")
end 

我收到'未定义的方法顺序'错误。

2 个答案:

答案 0 :(得分:2)

如果您想直接访问评论,而不是通过与其他模型的关系,则需要访问模型本身Comment

def top
  @topcomments = Comment.order('created_at desc')
end 

  

您如何获得每条评论的帖子

假设您在评论和帖子之间设置了正确的关系,您只需访问.post每条评论。您可以使用includes(:post)来避免n+1 problem

def top
  @topcomments = Comment.order('created_at desc').includes(:post)

  @topcomments.each |comment|
    comment.post # here is the post
  end
end

答案 1 :(得分:1)

def top
    @topcomments = Comment.order("created_at desc")
end