actal_as_taggable_on按字母顺序分组?

时间:2010-03-11 05:45:28

标签: ruby-on-rails ruby acts-as-taggable

通过以下代码对tag_counts哈希进行了排序:

sorted_tags = Contact.tag_counts.sort {| x,y | x.name.downcase< => y.name.downcase}

在我的视图中以字母分组显示标签的最简单/最有效的方法是什么?

A - “Alpha”,“Apple”,“Aza”

B - “Beta”,“Bonkers”

Z - “Zeta”,“Zimmer”

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

好的我找到了一种方法,不确定它是最有效还是最优雅的,但这里有:

-sorted_tags = Contact.tag_counts.sort{ |x,y| x.name.upcase <=> y.name.upcase }.map(&:name)

%ul

  -"A".upto("Z") do |l|

    %li="#{l} = #{ sorted_tags.select{ |x| x.upcase.starts_with?(l)}.map{|k| link_to k, k}.join(" ") }"