2012-08-08 40 views
1

所以,這是一個更容易的問題。我有一個像活動記錄對象,因此:Rails Active記錄項分區

Item 
    --id 
    --attribute 

我需要的屬性鍵分裂的「項目」 S數組,所以我想不同的陣列分裂像這樣。

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

我該怎麼做?

回答

1

這應該給你一個數組的數組,其中每個子陣列具有相同的attribute

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

編輯:既然你正在使用ActiveRecord,你可以組中的數據庫。我自己更喜歡DataMapper這個傢伙,但是這應該大致是這樣的:

Items.find(:all, group: 'attribute')