2

所以,这是一个更容易的问题。我有一个像这样的活动记录对象:

Item
  --id
  --attribute 

我需要通过属性键拆分一个“项目”数组,所以我想要像这样拆分各种数组。

[<#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>]

我该怎么做?

4

1 回答 1

1

这应该为您提供一个数组数组,其中每个子数组具有相同的attribute

Items.all.group_by(&:attribute).values

编辑:由于您使用的是ActiveRecord,您可以在数据库中进行分组。我DataMapper自己更像一个人,但这应该大致是这样的:

Items.find(:all, group: 'attribute')
于 2012-08-08T19:48:16.693 回答