【问题标题】:Created a numbered list with For Loop用 For 循环创建了一个编号列表
【发布时间】:2010-06-23 00:04:41
【问题描述】:

你会认为我会在 10 秒内完成这项工作,但我已经花了 1/2 小时,却一无所获。这就是我所拥有/想要的:

  <table>
     <% i=0 %>
     <% for name in @names%>
       <% i++ %>
       <tr>
  <td><%= "#{i}" %></td>
  <td><%= name.first %>"></td>
       </tr>
  </table>

是的,我想要的只是一个编号列表,例如:

  1. 弗雷德
  2. 威尔玛 等等……

我得到的错误是: compile error /blah/_names.html.erb:13: syntax error, unexpected ';' ; i++ ; @output_buffer.concat "\n\t\t <td>"

【问题讨论】:

    标签: ruby-on-rails list for-loop numbered


    【解决方案1】:

    你可以这样做

    <table> 
       <% @names.each_with_index do |name, i| %>
          <tr> 
             <td><%= i %></td> 
             <td><%= name %></td> 
          </tr> 
       <% end %>
    </table>
    

    【讨论】:

    • 在第二个&lt;/td&gt;之前多了一个&gt;
    • 谢谢,我知道有不止一种方法可以做到这一点。
    • 不要在数字后添加点(有序列表会为您执行此操作)
    【解决方案2】:

    您应该尝试使用有序列表而不是表格

    <ol> 
       <% @names.each do |name| %>
         <li><%= name %></li>  
       <% end %>
    </ol>
    

    【讨论】:

    • 同意!除非您需要读取数字或其他内容,否则有序列表是在 html 中进行编号列表的语义和最佳方式。这样,如果您使用 javascript 从列表中删除项目,列表仍然应该是有序的。
    【解决方案3】:

    Ruby 中没有i++。请改用i += 1

    【讨论】:

    • 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!有人向我开枪,我不知道出了什么问题!嗬!成功了,谢谢!
    【解决方案4】:
    <table>
      <% i = 0 %>
      <% for name in @names %>
       <% i += 1 %>
       <tr>
         <td><%= i %></td>
         <td><%= name.first %></td>
       </tr>
     <% end %>
    </table>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      相关资源
      最近更新 更多