A-Z类别视图

时间:2013-06-01 14:25:23

标签: javascript html ruby-on-rails web alphabetical

在我的留言板网站上,我想创建一个页面,并按字母顺序排列所有论坛。像Wikipedia这样的东西。

它应该是动态的(论坛可以偶尔创建或删除) 你是怎样做的?

2 个答案:

答案 0 :(得分:2)

这是控制器:

@grouped = {}
Forum.all.each do |forum|
  # take and capitalize first character from name
  letter = forum.name.slice(0,1).upcase
  @grouped[letter] ||= [] 
  @grouped[letter] << forum
end

以下是您的观点:

<ul>
  <% @grouped.keys.sort.each do |letter| %>
    <li>
      <h2><%= letter %></h2>
      <ul>
        <% @grouped[letter].each do |forum| %>
          <li><%= forum.name %></li>
        <% end %>
      </ul>
    </li>
  <% end %>
</ul>

Source

答案 1 :(得分:0)

我希望这有用:

1.9.3p362 :002 > ["foo", "bar", "baz", "fuzz", "debian"].group_by {|x| x[0] }
=> {"f"=>["foo", "fuzz"], "b"=>["bar", "baz"], "d"=>["debian"]}