你的@lv
变量是一个哈希,所以 using.each
只会给你一个组合的键值对作为块参数(这就是me
最终的结果)。相反,使用each_pair
; 这样,您可以获得键和值的分隔变量。像这样:
<% @lv.each_pair do |key, value| %>
<%= key %>
<% end %>
编辑
这也是对您在问题中的评论的回应。key
will 最终只是你的哈希的, apple
or name
, 一部分。该value
参数是键所指向的任何内容,在这种情况下是实际的项目数组(我认为这就是您所说的标签)。例如,您的哈希包含两个键值对,当我们迭代它们时,在第一个循环中key
=apple
和value
= ['tags', 'red']
。要输出该值数组,您可以使用几种不同的方式:
循环遍历标签数组
<% @lv.each_pair do |key, value| %>
<%= key %>
<%= value.each do |tag| %>
<%= tag %>
<%= end %>
<% end %>
作为逗号分隔的字符串:
....looping code
<%= value.join(", ") %>
或者直接以数组表示法将其吐出:
....looping code
<%= value %>
或者,如果您只想要值数组中的特定元素,那么是的,您可以这样做value[0]
,或者value[1]
...等。
让我知道这是否不是您要问的。