如何 group_by 这个哈希数组(可枚举)[Ruby, Rails]
How to group_by this array of hashs (Enumerable) [Ruby, Rails]
我有一个具有以下结构的哈希数组 (@items):
@items:
{'item' => item, 'stickers' => stickers}
...
并且 item
是一个 ActiveRecord,具有我想要 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] }, {...} ...]
解决方案:
<% @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 %>
我有一个具有以下结构的哈希数组 (@items):
@items:
{'item' => item, 'stickers' => stickers}
...
并且 item
是一个 ActiveRecord,具有我想要 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] }, {...} ...]
解决方案:
<% @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 %>