0

在我的留言板网站中,我想在所有按字母顺序排列的论坛中创建一个页面。像维基百科那样的东西。

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

4

2 回答 2

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>

资源

于 2013-06-01T15:50:33.857 回答
0

我希望这是有帮助的:

1.9.3p362 :002 > ["foo", "bar", "baz", "fuzz", "debian"].group_by {|x| x[0] }
=> {"f"=>["foo", "fuzz"], "b"=>["bar", "baz"], "d"=>["debian"]}
于 2013-06-01T15:45:06.827 回答