显示属于帖子的最后5条评论

时间:2013-10-14 04:46:13

标签: ruby-on-rails

我有两个模型,帖子和评论,我试图显示最后5个评论标题。

<%= Post.limit(5).order('created_at desc') %>

给了我最后5篇帖子。

我如何获得最后5条评论和标题?

2 个答案:

答案 0 :(得分:1)

我认为你在寻找:

Comment.select(:title).order('created_at desc').limit(5).map {|c| c.title}

这将为您创建最后5条评论的标题数组。如果您需要其他属性,请将它们添加到名为(Comment.select([:title, :owner]))的select方法中,或者删除select和fetch所有注释属性。

答案 1 :(得分:1)

要获得最近5条评论,您可以使用此

Comment.limit(5).order('created_at desc').select(:title)

显示帖子的标题,看起来您想要检索帖子的最后5条评论。

你可以这样:

<% Post.limit(5).order('created_at desc').each do |post| %>
  <% post.comments.select(:title).order('created_at desc').limit(5).each do |comment| %>
    <%= comment.title %>
  <% end %>
<% end %>

有两个问题:

  • 您正在直接从View访问模型。你应该这样做 控制器
  • 存在N + 1问题。您可以通过eager loading associations
  • 解决此问题

注意:我无法测试这些,但我想它们会起作用,或者至少会给你一些想法。