2

ですから、これは少し簡単な質問です。次のようなアクティブなレコード オブジェクトがあります。

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

どうすればいいですか?

4

1 に答える 1

1

これにより、配列の配列が得られます。各サブ配列は同じattributeです。

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

編集: を使用しているActiveRecordため、データベースでグループ化できます。私DataMapper自身はどちらかというと男ですが、おおよそ次のようになります。

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