所以,这是一个更容易的问题。我有一个活动记录对象,如下所示:
Item
--id
--attribute
我需要按属性键拆分"Item"数组,因此我希望像这样拆分各种数组。
[<#Item :id => 1, :attribute => 1>,<#Item :id => 4, :attribute => 1>,<#Item :id => 7, :attribute => 1>]
[<#Item :id => 2, :attribute => 2>,<#Item :id => 5, :attribute => 2>,<#Item :id => 8, :attribute => 2>]
[<#Item :id => 3, :attribute => 3>,<#Item :id => 6, :attribute => 3>,<#Item :id => 9, :attribute => 3>]
我该怎么做?
这应该给你一个数组数组,其中每个子数组都有相同的attribute
:
Items.all.group_by(&:attribute).values
编辑:由于您使用的是ActiveRecord
,因此可以在数据库中分组。我自己更像是一个DataMapper
的人,但应该是大致的:
Items.find(:all, group: 'attribute')