[ruby] 뷰에서 <%i+=1%> 등을 작성하지 않고 each.with_index로 작성하는 방법

2766 단어 루비Rails5

경위



랭킹을 나타내는 뷰를 작성할 때 아래와 같이 직접 코드 내에
AUTO_INCREMENT가 되도록(정수치가 1씩 증가해 간다)
i+=1로 설정했습니다.

app/views/ranks/_rank.html.erb
<% i = 1 %>
<% models.each do |model| %>
  <tr>
    <td><p><%= i %></p></td>
    <!--(省略) -->
  </tr>
  <% i += 1 %>
<% end %>

이대로는 외형이 그다지 예쁘지 않습니다.

해결 방법



each.with_index를 사용합니다.

app/views/ranks/_rank.html.erb
<% models.each.with_index(1) do |model, i| %>
  <tr>
    <td><p><%= i %></p></td>
    <!--(省略) -->
  </tr>
<% end %>

이것으로 할 수있었습니다.
이 경우 블록 변수의 i는 자동 증가입니다.
그리고 each.with_index 뒤의 (1)은 시작 번호를 나타냅니다.
1,2,3···로 늘어나갑니다.

이런 느낌이 듭니다.


참고



· htps : // 이 m / s st / ms / d2c663b4 524581747
· htps : //신쿠후센세 r. 는 bぉ. jp/엔트리/2019/07/19/000000

좋은 웹페이지 즐겨찾기