2016-08-17 55 views
0

我有MyModel具有兩個屬性,一個是:標籤字符串和一個:組合這些字符串的組整數。這些組的標籤來自GROUP_LABELS字符串數組。對於我的html視圖,我想創建一個帶有分組選項的選擇控件。爲分組選項創建數據結構

產生的嵌套數組的哈希必須:

{ 'Group Label 1': [[ 'Label 1.1', 1 ],[ 'Label 1.2', 2 ]], 
    'Group Label 2': [[ 'Label 2.1', 3 ],[ 'Label 2.2', 3 ] ... ]} 

回答

0

我的解決辦法是:

{}.tap{ |h| [ 
    MyModel.all.order(:group).chunk{ |r| r.group }.each{ |g,i| 
    h[ GROUP_LABELS[ g ]] = i.map{ |i| [ i.label, i.id }}]} 

MyModel.all.order(:group)給我阿雷爾,由分組屬性排序。 .chunk在ARel上創建一個迭代器,考慮:group值,在該循環中,我爲每個組創建哈希條目。

我想與大家分享一下,因爲我在其他地方找不到合適的解決方案。