3

你会认为我会在 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>"

4

4 回答 4

6

你可以这样做

<table> 
   <% @names.each_with_index do |name, i| %>
      <tr> 
         <td><%= i %></td> 
         <td><%= name %></td> 
      </tr> 
   <% end %>
</table>
于 2010-06-23T00:09:05.263 回答
4

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

<ol> 
   <% @names.each do |name| %>
     <li><%= name %></li>  
   <% end %>
</ol>
于 2010-06-23T02:44:13.380 回答
2

Ruby 中没有i++。试试i += 1吧。

于 2010-06-23T00:09:11.987 回答
1
<table>
  <% i = 0 %>
  <% for name in @names %>
   <% i += 1 %>
   <tr>
     <td><%= i %></td>
     <td><%= name.first %></td>
   </tr>
 <% end %>
</table>
于 2010-06-23T00:16:13.623 回答