如何在Rails 4中只显示一次帖子的章节标题?

时间:2014-05-21 13:17:14

标签: ruby-on-rails ruby rails-activerecord erb

我想根据Posts列出Section。我写了给定的代码:

查看

<div class="right-links">
    <% @posts.each do |p| %>
        <h3 class="title">
            <%= p.section.title %>
        </h3>

        <p><%= link_to p.title, p %></p>
    <% end %>
    &nbsp;
</div>

控制器

@posts = Post.limit(15)

显然这还不够,它所做的只是显示每个帖子的章节标题,而这并不是我想要的。是否有一些教程或者你们可以帮助我如何仅显示section title一次,然后显示其下的所有帖子?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用控制器中的group_by方法执行此操作。

@sections_posts = Post.limit(15).group_by(&:section_id)

然后在视图中显示

<div class="right-links">
    <% @sections_posts.each do |section_id, posts| %>
        <h2 class="title">
            <%= Section.find(section_id).title %>
        </h2>

        <% posts.each do |post| %>
          <p><%= link_to post.title, post %></p>
        <% end %>
    <% end %>
    &nbsp;
</div>

那应该为你做。