如何group_by这个哈希数组(Enumerable)[Ruby,Rails]

时间:2016-03-20 13:06:53

标签: ruby-on-rails ruby hash group-by enumerable

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

@items:

{'item' => item, 'stickers' => stickers}
...

item是一个ActiveRecord,其中包含attr我想要group_by:csgo_type

我的代码:

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

但这根本就没有。

我正在寻找这样的结果:

[ { :csgo_type => #ActiveRecord(csgo_type 1), :items => [array of some @items of this type] }, {...} ...]

1 个答案:

答案 0 :(得分:3)

解决方案:

<% @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 %>