6

这是在红宝石中最干燥的方法吗?

<% for item in @items %>
  <%= n = n + 1 rescue n = 1 %>
<% end %>

它将“n”初始化为“1”并随着循环的进行增加它(并打印出来),因为这是我的应用程序的一个视图

4

3 回答 3

16

您可以使用三元运算符:

<% for item in @items %>
  <%= n = n ? n+1 : 1 %>
<% end %>

但是,根据您要执行的操作,我猜 each_with_index 会更合适

<% @items.each_with_index do |item, n| %>
  <%= n %>
<% end %>
于 2009-07-19T19:31:53.630 回答
5

您还可以依靠 ruby​​ 的 nil 强制转换为整数,结果为零。

<% for item in @items %>
  <%= n = n.to_i + 1 %>
<% end %>
于 2013-08-15T17:26:35.890 回答
0

嗯。

n = @items.size
于 2009-07-20T01:24:18.887 回答