在我的留言板网站中,我想在所有按字母顺序排列的论坛中创建一个页面。像维基百科那样的东西。
它应该是动态的(可以偶尔创建或删除论坛)。
你是怎样做的?
在我的留言板网站中,我想在所有按字母顺序排列的论坛中创建一个页面。像维基百科那样的东西。
它应该是动态的(可以偶尔创建或删除论坛)。
你是怎样做的?
这是在控制器上:
@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.9.3p362 :002 > ["foo", "bar", "baz", "fuzz", "debian"].group_by {|x| x[0] }
=> {"f"=>["foo", "fuzz"], "b"=>["bar", "baz"], "d"=>["debian"]}