红宝石组收集通过foreach中的第一个字母

brabertaser19

例如,我收集了此类数据:

80 (0)
90 (0)
100 (0)
200 (0)
A2 (0)
A3 (0)
A4 (0)
A5 (0)
A6 (0)
A8 (0)
Allroad (0)
Cabriolet (0)
Coupe (0)
Q7 (0)
Quattro (0)
R8 (0)
RS4 (0)
RS6 (0)
S2 (0)
S3 (0)
S4 (0)
S5 (0)
S6 (0)
S8 (0)
TT (0)
V8 (D11) (0)

和这样的看法:

.vip-offers#manufacturers-list
      .man-area
        %ul
          - @models.each do |car|
            %li
              = link_to "#{car.name} (#{car.get_cars_model_count(car.id)})", advanced_search_show_path(by_model: car.id), id: "link-blue", data: { no_turbolink: true }

如您所见-我将整个数据显示为列表,但我需要按名称中的第一个字母将其分组,例如:

8
 80 (0)
9
  90 (0)
1
  100 (0)
2 
  200 (0)
A
  A2 (0)
  A3 (0)
  A4 (0)
  A5 (0)
  A6 (0)
  A8 (0)
  Allroad (0)
etc...

我没有想到如何选择第一个字母并按它分组...也许有人有想法?

吉治先生

.group_by 是你的朋友:

@grouped_cars = cars.group_by { |one_record| one_record.name[0].to_s # returns the first letter of the name }

此代码应创建一个结构如下的哈希:

{ 
  '0' => [<Car id:12, name: '007'>],
  'A' => [<Car id:13, name: 'Audi'>, <Car id:14, name: 'Audi RS5'>],
  # etc.
}

然后,您可以执行以下操作:

%ul
  - @grouped_cars.each do |first_letter, cars|
    %li.first_letter= first_letter
    %ul
      - cars.each do |car|
        %li.one_car= car.name

您可能需要在代码group_by块中添加一些内容

@grouped_cars = cars.group_by do |car|
  car.name[0].to_s.upcase # transforms 'a' into 'A'
end

我还注意到,您可能会失去字母顺序,因为哈希没有排序。要解决此问题,您可以执行以下操作:

%ul
  - @grouped_cars.keys.sort.each do |letter|
    %li.first_letter= first_letter
    %ul
      - @grouped_cars[letter].each do |car|
        %li.one_car= car.name

或检查@DaniëlKnippers对我的回答发表评论

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

红宝石/正则表达式获取每个单词的第一个字母

来自分类Dev

foreach 只结果每行的第一个字母

来自分类Dev

词组的第一个字母

来自分类Dev

删除每行的第一个字母

来自分类Dev

匹配单词的第一个字母

来自分类Dev

获取索引的第一个字母?

来自分类Dev

如果第一个字母是R中的特定字母,则创建新列

来自分类Dev

我最后一个字中的第一个字母怎么被截断?

来自分类Dev

如何通过标题的第一个字母创建字典但忽略诸如“the”或“a/an”等文章

来自分类Dev

通过使用C#以名称中的第一个字符“#”创建Active Directory组

来自分类Dev

打印一行中每个单词的第一个字母

来自分类Dev

在一个句子组中,所有以相同字母开头的单词,并根据单词的第一个字符对其进行排序

来自分类Dev

获取python中每个2个字母的单词的第一个字母

来自分类Dev

如何使用jQuery从字符串中获取第一个字母

来自分类Dev

在作为字母的字符串中查找第一个字符

来自分类Dev

MySQL选择单元格中每个单词的第一个字母

来自分类Dev

JTextPane中第一个字母左侧的意外填充/意外的印刷行为

来自分类Dev

查找字符串中的第一个字母-Javascript

来自分类Dev

Oracle PL / SQL从名称(HUN)中获得第一个字母

来自分类Dev

从列中获取字符串的第一个字母

来自分类Dev

如何检查字符串中的第一个字母是数字

来自分类Dev

在声明中获取单词的第一个字母

来自分类Dev

如何摆脱行名中的第一个字母

来自分类Dev

识别输入流中的第一个字母

来自分类Dev

按空白列中的第一个字母发布排序列

来自分类Dev

匹配Tcl中字符串的第一个字母

来自分类Dev

C中字符串的第一个字母

来自分类Dev

大写文件中的第一个字母

来自分类Dev

cmd:从字符串中查找第一个字母

Related 相关文章

  1. 1

    红宝石/正则表达式获取每个单词的第一个字母

  2. 2

    foreach 只结果每行的第一个字母

  3. 3

    词组的第一个字母

  4. 4

    删除每行的第一个字母

  5. 5

    匹配单词的第一个字母

  6. 6

    获取索引的第一个字母?

  7. 7

    如果第一个字母是R中的特定字母,则创建新列

  8. 8

    我最后一个字中的第一个字母怎么被截断?

  9. 9

    如何通过标题的第一个字母创建字典但忽略诸如“the”或“a/an”等文章

  10. 10

    通过使用C#以名称中的第一个字符“#”创建Active Directory组

  11. 11

    打印一行中每个单词的第一个字母

  12. 12

    在一个句子组中,所有以相同字母开头的单词,并根据单词的第一个字符对其进行排序

  13. 13

    获取python中每个2个字母的单词的第一个字母

  14. 14

    如何使用jQuery从字符串中获取第一个字母

  15. 15

    在作为字母的字符串中查找第一个字符

  16. 16

    MySQL选择单元格中每个单词的第一个字母

  17. 17

    JTextPane中第一个字母左侧的意外填充/意外的印刷行为

  18. 18

    查找字符串中的第一个字母-Javascript

  19. 19

    Oracle PL / SQL从名称(HUN)中获得第一个字母

  20. 20

    从列中获取字符串的第一个字母

  21. 21

    如何检查字符串中的第一个字母是数字

  22. 22

    在声明中获取单词的第一个字母

  23. 23

    如何摆脱行名中的第一个字母

  24. 24

    识别输入流中的第一个字母

  25. 25

    按空白列中的第一个字母发布排序列

  26. 26

    匹配Tcl中字符串的第一个字母

  27. 27

    C中字符串的第一个字母

  28. 28

    大写文件中的第一个字母

  29. 29

    cmd:从字符串中查找第一个字母

热门标签

归档