如何按此哈希数组进行分组(可枚举)[Ruby,Rails]

Posted

技术标签:

【中文标题】如何按此哈希数组进行分组(可枚举)[Ruby,Rails]【英文标题】:How to group_by this array of hashs (Enumerable) [Ruby, Rails] 【发布时间】:2016-07-06 23:02:45 【问题描述】:

我有一个具有这种结构的哈希数组(@items):

@项目:

'item' => item, 'stickers' => stickers
...

item 是一个 ActiveRecord,其属性是我要分组的属性:csgo_type

我的代码:

<% @items.group_by  |d| d['item'][:csgo_type] .each do |a| %>
    <%= render partial: 'item', locals: a: a %>
<% end %>

但这根本不分组。

我正在寻找这样的结果:

[ :csgo_type =&gt; #ActiveRecord(csgo_type 1), :items =&gt; [array of some @items of this type] , ... ...]

【问题讨论】:

您找到了解决问题的方法真是太好了……太棒了!在 SO,我们鼓励您回答自己的问题,但最好使用“您的答案”框将其添加到下方,而不是将其编辑到您的问题中。您是否考虑编辑您的问题以删除答案并使用下面的“您的答案”框将其添加回来? 【参考方案1】:

解决方案:

<% @items.group_by  |d| d['item'].csgo_type .each do |a,b| %>
    === <%= a.name %>
    <% b.each do |cada| %>
        <%= render partial: 'item', locals: cada: cada, i: 1 %>
    <% end %>
<% end %>

【讨论】:

以上是关于如何按此哈希数组进行分组(可枚举)[Ruby,Rails]的主要内容,如果未能解决你的问题,请参考以下文章

使用辅助方法和 Ruby 可枚举返回 html 格式的对象

哈希可枚举方法:仅传递一个参数时的行为不一致

如何在Ruby中按降序对数组进行排序

ruby 按哈希值分组

ruby 将哈希值转换为排序的字符串数组,以便与另一个哈希值进行比较

如何从哈希数组创建 ruby​​ 类的实例?