2016-08-17 16 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值,在该循环中,我为每个组创建哈希条目。

我想与大家分享一下,因为我在其他地方找不到合适的解决方案。