在我的留言板网站上,我想创建一个页面,并按字母顺序排列所有论坛。像Wikipedia这样的东西。
它应该是动态的(论坛可以偶尔创建或删除) 你是怎样做的?
答案 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>
答案 1 :(得分:0)
我希望这有用:
1.9.3p362 :002 > ["foo", "bar", "baz", "fuzz", "debian"].group_by {|x| x[0] }
=> {"f"=>["foo", "fuzz"], "b"=>["bar", "baz"], "d"=>["debian"]}