如何将所有以数字开头的录音机分组在一起

How to group all recorders that start with a number together

我有一个简单的 rails 博客,它显示了所有艺术家的列表,我想将所有以数字开头的人分组到一个名为 0-9[=28 的组中=],后跟 a、b、c、d,其中 a、b、c、d 显示以相应字符开头的艺术家。

目前我可以对字符进行分组,但我不知道如何将数字合并为一个组。我拥有的是 0, 1, 2...9 其中 0..9 是数组的单个组。

我的控制器代码如下

@artists = Artist.order(name: :asc).group_by{|u| u.name[0].upcase}

我的排序代码是

<% @artists.each do |letter, artists| -%>
  <h4><%= letter %></h4>
  <ul>
    <% artists.first(4).each do |artist| -%>
      <li><%= render artist %></li>
    <% end -%>
  </ul>              
<% end %>

这给了我这里的结果 http://netpod.site.com.ng/artists 其中一切都很好。但是我想把那些有数字的作为一个数组集。

我不确定我是否 100% 正确地理解了问题,但我认为您正在寻找类似的东西:

["12-d", "50 cent", "ACDC", "Mr Cool"].group_by{ |artist| ((artist =~ /[0-9]/) ? "numbers" : artist[0]) }

这会 return:

{"numbers"=>["12-d", "50 cent"], "A"=>["ACDC"], "M"=>["Mr Cool"]}