如何在ruby中为属性迭代添加索引?
<% @child.toys.attributes.each do |attr_name, attr_value| %>
我尝试过each_with索引:
<% @child.toys.attributes.each_with_index do |attr_name, attr_value| %>
但索引会在哪里进行?
答案 0 :(得分:3)
你可以这样做
<% @child.toys.attributes.each_with_index do |(attr_name, attr_value), idx| %>
答案 1 :(得分:3)
.each_with_index
附加index
变量:
%w(cat dog wombat).each_with_index {|item, index|
hash[item] = index
}
hash #=> {"cat"=>0, "dog"=>1, "wombat"=>2}
在你的例子中:
<% @child.toys.attributes.each_with_index do |key,value,index| %>
<%= key %>
<%= value %>
<%= index %>
<% end %>
玩具需要是一个成员对象(属性不会对集合起作用)。
-
我还测试了只是声明&#34;键&#34;,如下:
<% @child.toys.attributes.each_with_index do |attr,index| %>
<%= attr[0] %>
<%= attr[1] %>
<%= index %>
<% end %>
在此实例中, attr
作为数组返回,其中键/值分别用作数组的0
和1
元素。 / p>