테이블 레이아웃에서 임의의 요소 수에 대한 데이터를 Rails에 더 잘 표시하려면

1674 단어 in_groups_ofRails

하고 싶은 일


테이블 레이아웃으로 레코드 목록을 표시하려면 (부득이하게) 하십시오.

고민거리


기록의 수량은 가변적이기 때문에 기록수로 표 레이아웃을 솔직하게 실현하려면 열수가 흩어지는 상황이 발생한다.

해결책


ActiveSupport에 추가된 Array#in_groups_of를 사용합니다.in_groups_of를 사용하면 그룹을 지정한 열수의 2차원 표로 나누고 마지막 줄에 열수가 부족한 부분을 추가nil합니다.
%w(1 2 3 4 5 6 7 8 9 10).in_groups_of(3) {|group| p group}
["1", "2", "3"]
["4", "5", "6"]
["7", "8", "9"]
["10", nil, nil]
넣을 것을 지정할 수도 있다.
%w(1 2 3 4 5).in_groups_of(2, ' ') {|group| p group}
["1", "2"]
["3", "4"]
["5", " "]
레코드 모음에 적용할 경우
<table>
  <% Post.all.in_groups_of(3) do |row| %>
    <tr>
      <% row.each do |post| %>
        <td>
          <% if post %>
            <%=link_to post.title, post %>
          <% end %>
        </td>
      <% end %>
    </tr>
  <% end %>
</table>

아래의 느낌으로 예쁜 탁자 배치를 실현할 수 있습니다.

참조:

좋은 웹페이지 즐겨찾기