2016-03-20 11 views
2

group_by nasıl Bu yapı ile hashs bir dizi (@items) sahiptir:hashs bu dizi (Enumerable) [Yakut, raylar]

@items:

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

ve item olduğu Bir ActiveRecord ile attr group_by istiyorum: csgo_type.

Kodum:

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

Ama hiç bu doesnt grubudur.

Böyle bir sonuç için arıyorum:

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

+1

Size bravo ... senin soruna bir çözüm buldum bu mükemmel! SO'da, kendi sorunuzu cevaplamanızı öneririz, ancak sorunuzu düzenlemek yerine "Cevabınız" kutusunu kullanarak aşağıya eklerseniz daha iyi olur. Cevabınızı kaldırmak ve aşağıdaki "Yanıtınız" kutusunu kullanarak tekrar eklemek için sorunuzu düzenlemeyi düşünür müsünüz? –

+0

Bitti, teşekkürler! : D –

cevap

2

Çözüm:

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