0

我想按标题的字母顺序对集合进行分组:

@projects = Project.find_all_by_user_id(current_user.id)

该视图应包含按标题分组的项目列表,例如:

A
Andre's Project
Ananas

C
Chemnitz
Cleopatra

F
Find a new office

S
Super secret stuff

但我不知道如何在rails中做到这一点。Rails 是否提供了执行此操作的功能,还是我需要编写自己的循环来查找标题等?

谢谢!

4

1 回答 1

3

不是 Rails,而是 Ruby 可以解决问题。在您看来:

<% @projects.group_by{ |project| project.name[0].downcase }.each do |letter, projects| %>
  <div id="letter-<%= letter %>" class="letter-group">
    <h2><%= letter.upcase %><h2>
    <% projects.each do |project| %>
      <p><%= link_to project.name, project %></p>
    <% end %>
  </div>
<% end %>

group_by( ruby​​-doc ) 返回一个哈希值,您可以轻松地循环使用字母作为键和相应项目的数组作为值。确保您的记录已经按项目名称排序:(在您的控制器中)

@projects = Project.order("name ASC").find_all_by_user_id(current_user.id)
于 2013-03-04T12:05:21.330 回答