chunkを使ってデータを分割

一覧表示時にあるモデルの値毎に出力する場所(div)を変えたい場合ってどうすればいいんだろう?
インスタンス変数を分割して渡すのも嬉しくないし。
と思い調べてみるとEnumrable.chunkを使って実現できそうなのでやってみました。
一見分かりにくいのでベストではない気がします。


controller

column_noの値毎にchankを使ってグループ化して
その値をkeyにしたHasnに放り込みます。

    @groups = {}
    Group.all.chunk{|group| group.column_no }.each{ |k,v| @groups[k] = v }

view

<% (1..@sheet.max_column).each do |c| %>
<div id="column_<%=c%>" class="column">
<%= render partial: 'shared/group', collection: @groups[c] %>
</div>
<% end %>

こんな感じ