我的MyModel有两个属性,一个是:label string和一个:group integer,它们对这些字符串进行分组。这些组的标签来自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 :(得分: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 )
给我ARel,按分组属性排序。考虑到:group值,.chunk
在ARel上创建一个迭代器,在该循环中我为每个组创建哈希条目。
我想与您分享,因为我在其他地方找不到合适的解决方案。