0

我的 MyModel 有两个属性,一个 :label 字符串和一个 :group 整数,它们对这些字符串进行分组。这些组的标签来自字符串数组 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 ] ... ]}
4

1 回答 1

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,按分组属性排序。.chunk考虑到 :group 值,在 ARel 上创建一个迭代器,在该循环中,我为每个 :group 创建哈希条目。

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

于 2016-08-17T13:17:13.813 回答