Форматировать элементы индекса по-разному - PullRequest
1 голос
/ 22 октября 2011

У меня довольно распространенное представление индекса, но я бы хотел отформатировать первый элемент иначе, чем другие. Как отличить первый элемент от остальных, чтобы получить что-то вроде использования тегов <h1> для первой ссылки вместо <h5>?

<% @links.each do |link| %>
  <% if link.points == 0 then @points = "?" else @points = link.points%>
  <% end %>
    <p>
      <h5> 
        <%= link_to '+', up_link_url(link), :method => :put, :class => "label success" %> 
        <%= @points %> 
        <%= link_to '-', down_link_url(link), :method => :put, :class => "label important" %> &nbsp; &nbsp; &nbsp;
        <%= link_to strip_tags(link.title), link %>
      </h5>
    </p>
<% end %>

Ответы [ 2 ]

2 голосов
/ 22 октября 2011

Существует несколько вариантов, но я бы хотел начать с частичной ссылки и не использовать большую часть этого в шаблоне основной линии.

Вы можете использовать each_with_index, и любой из них может иметь частичнуюрешить, какой тег заголовка использовать, или связать индексы с уровнем заголовка (например, с картой, но, возможно, излишним).

Или вы можете отрисовать первый элемент (@links.first) вручную (снова с частичным,передать строку заголовка тега) и сделать оставшиеся элементы через цикл.Я на самом деле склоняюсь к этому, так как он сохраняет шаблон основной линии довольно чистым, но очень коммуникативным, и вам не нужно копаться в шаблоне, чтобы понять, почему вещи отображаются по-разному.

На неродственной ноте,с семантической точки зрения переход от h1 к h5 без промежуточных заголовков немного странный.

2 голосов
/ 22 октября 2011

Как насчет?

<% @links.each_with_index do |link, index| %>
  <% if link.points == 0 then @points = "?" else @points = link.points%>
  <% end %>
    <p>
      <% if index == 0 then %> <h1> <% else %> <h5> <% end %>
        <%= link_to '+', up_link_url(link), :method => :put, :class => "label success" %>
        <%= @points %>
        <%= link_to '-', down_link_url(link), :method => :put, :class => "label important" %> &nbsp; &nbsp; &nbsp;
        <%= link_to strip_tags(link.title), link %>
      <% if index == 0 then %> </h1> <% else %> </h5> <% end %>
    </p>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...