Domanda

ho il seguente file member.html.erb:

<ul class="members-list">
  <%@members.each do |member|%>
  <li class="member-item">
    <%=member.name%>
  </li>
  <%end%>
</ul>

voglio aggiungere la "prima" classe per la prima li che verrà generato (solo per il primo), quindi sarebbe simile a questa:

<ul>
  <li class="member-item first">john</li>
  <li class="member-item">chris</li>
</ul>

tutti i pensieri?

È stato utile?

Soluzione

Si potrebbe raggiungere questo aswell CSS utilizzando se puramente per lo styling. Se si ha un ID o di classe sulla ul allora si potrebbe in scrittura CSS

ul.member-list li:first-child {
WHATEVER STYLING CODE THAT YOU WOULD PUT IN member-item first
}

e per il resto delle li-tag

ul.member-list li {

}

Se si desidera che la classe da aggiungere si potrebbe per esempio

<ul>
    <% @members.each_with_index do |member, i| %>

    <% if i == 0 %>
        <li class="member-item first">
            <% member.name %>
        </li>
    <% else %>
        <li class="member-item">
            <% member.name %>
        </li>
    <% end %>
</ul>

Altri suggerimenti

Simile, ma più terse, l'approccio alla risposta di Andreas / Heikki:

<ul>
  <% @members.each_with_index do |member, i| %>
    <li class="member-item<%= ' first' if i == 0 %>">
        <% member.name %>
    </li>
  <% end %>
</ul>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top