这是在ruby中执行此操作的DRIest方法吗?
<% for item in @items %>
<%= n = n + 1 rescue n = 1 %>
<% end %>
将“n”初始化为“1”并在循环进行时将其递增(并将其打印出来),因为这是我的应用程序的一个视图
答案 0 :(得分:16)
您可以使用三元运算符:
<% for item in @items %>
<%= n = n ? n+1 : 1 %>
<% end %>
但是,根据你想要做的事情,我猜测each_with_index会更合适
<% @items.each_with_index do |item, n| %>
<%= n %>
<% end %>
答案 1 :(得分:5)
你也可以依赖ruby的nil强制到一个导致零的整数。
<% for item in @items %>
<%= n = n.to_i + 1 %>
<% end %>
答案 2 :(得分:0)
庵。
n = @items.size