2016-08-17 18 views
0

私はMyModelに2つの属性、a:ラベル文字列、およびこれらの文字列をグループ化する:グループ整数を持っています。これらのグループのラベルは、文字列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)は私にグループ化属性でソートARELを与えます。 .chunkは:グループ値を考慮してARel上に反復子を作成します。そのループ内で、私はハッシュエントリper:グループを作成します。

他の場所では適切な解決策が見つからないので、私はこれをあなたと共有したいと思います。

関連する問題