使用For循环创建编号列表

时间:2010-06-23 00:04:41

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

你会认为我会在10秒钟内完成这项任务,但我已经花了半小时而且无处可去......这就是我所拥有/想要的:

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

是的,我想要的只是一个带编号的名单,如:

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

4 个答案:

答案 0 :(得分:6)

你可以这样做

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

<table>
  <% i = 0 %>
  <% for name in @names %>
   <% i += 1 %>
   <tr>
     <td><%= i %></td>
     <td><%= name.first %></td>
   </tr>
 <% end %>
</table>