22

.erbの中には、単純なeachループがあります。

<%= @user.settings.each do |s| %>
  ..
<% end %>

現在最初の反復が行われているかどうかを確認する最も簡単な方法は何ですか?私は設定できることを知っていますi=0...i++が、それは。の内部ではあまりにも厄介.erbです。助言がありますか?

4

2 に答える 2

35

アレイのサイズによって異なります。それが本当に巨大な場合(数百以上)、.shift配列の最初の要素を処理してから、コレクションを表示する必要があります。

<% user_settings = @user_settings %>
<% first_setting = user_settings.shift %>
# do you stuff with the first element 
<%= user_settings.each do |s| %>
  # ...

または、次を使用できます.each_with_index

<%= @user.settings.each_with_index do |s, i| %>
  <% if i == 0 %>
    # first element
  <% end %>
  # ...
<% end %>
于 2013-01-21T20:11:29.133 に答える
7

私が見つけた最も読みやすい方法は次のとおりです。

<%= @user.settings.each do |s| %>
  <% if @user.settings.first == s %>
    <% # Your desired stuff %>
  <% end %>
<% end %>
于 2016-09-11T22:45:02.780 に答える