Rails 3按字母顺序列出ActiveRecord对象

Har*_*rry 3 ruby ruby-on-rails ruby-on-rails-3

如何在Rails 3中创建一个查询集并查看(在我的情况下为@contacts)以按字母顺序列出ActiveRecord对象?

我正在尝试做这个实现;

A - >联系人以A开头

B - >联系人以B等开头

最后看:http: //jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/lists/lists-divider.html

谢谢

Aru*_*nan 15

你必须做这样的事情:

@users = User.all.group_by{|u| u.name[0]}
Run Code Online (Sandbox Code Playgroud)

在视图中:

<% @users.keys.sort.each do |starting_letter| %>
  <%= starting_letter %>
  <% @users[starting_letter].each do |user| %>
    <%= user.name %>
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)


Sim*_*tsa 6

从数据库中获取所有联系人并enum.group_by在数组上使用方法:

@contacts = Contact.order(:name)
@contacts.group_by{ |contact| contact.name[0] }.each do |contact|
  # ...
end
Run Code Online (Sandbox Code Playgroud)