【问题标题】:ruby "first" helper method?红宝石“第一个”辅助方法?
【发布时间】:2010-12-30 10:33:30
【问题描述】:

我有以下文件 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>

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby erb helpermethods


    【解决方案1】:

    如果纯粹是为了样式,您也可以使用 CSS 来实现这一点。如果你在 ul 上有一个 ID 或类,那么你可以在 CSS 中写

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

    对于其余的 li-tags

    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>
    

    【讨论】:

    • 你可以循环使用 ".each_with_index do |member, i|"摆脱单独的计数器变量。
    【解决方案2】:

    与 Andreas/Heikki 的回答类似,但更简洁:

    <ul>
      <% @members.each_with_index do |member, i| %>
        <li class="member-item<%= ' first' if i == 0 %>">
            <% member.name %>
        </li>
      <% end %>
    </ul>
    

    【讨论】:

      猜你喜欢
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 2011-02-28
      • 2013-03-19
      • 2010-09-08
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多