使用Rails 3.2和Ruby 1.9。当我们对@objects.each_with_index do |object, i|
进行编码时,i
通常以0
,1
,2
开头。等
假设我们有@objects = [A, B, C, D, E]
,输出为:
<% @objects.each_with_index do |object, i| %>
<%= i %> - <%= object %><br>
<% end %>
# output
0 - A
1 - B
2 - C
我想要这样做:
# output
2 - A
1 - B
0 - C
怎么做?
答案 0 :(得分:8)
<%= @objects.length - 1 - i %> - <%= object %><br>
这将减去数组长度的索引,给出所需的输出。
您必须始终从长度中减去一个,因为长度为3的数组具有索引0,1,2
答案 1 :(得分:1)
这是怎么回事?
a = [:a,:b,:c]
a.each.with_index(-a.length+1) {|e,i| print -i," ",e,"\n"}
<强>输出:强>
2 a
1 b
0 c
你的人可能是这样的:
<% @objects.each.with_index(-@objects.length+1) do |object, i| %>
<%= -i %> - <%= object %><br>
<% end %>