Рубин "первый" вспомогательный метод? - PullRequest
1 голос
/ 30 декабря 2010

У меня есть следующий файл member.html.erb:

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

Я хочу добавить «первый» класс к первому li, который будет сгенерирован (только к первому), чтобы он выглядел так:

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

есть мысли?

Ответы [ 2 ]

4 голосов
/ 30 декабря 2010

Подобный, но более лаконичный подход к ответу Андреаса / Хейкки:

<ul>
  <% @members.each_with_index do |member, i| %>
    <li class="member-item<%= ' first' if i == 0 %>">
        <% member.name %>
    </li>
  <% end %>
</ul>
4 голосов
/ 30 декабря 2010

Вы можете добиться этого, используя CSS, а также, если это чисто для стиля. Если у вас есть идентификатор или класс на ul, вы можете написать в CSS

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

и остальные теги li

ul.member-list li {

}

Если вы хотите, чтобы класс был добавлен, вы можете, например,

<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>
...