你的@lv变量是一个哈希,所以 using.each只会给你一个组合的键值对作为块参数(这就是me最终的结果)。相反,使用each_pair; 这样,您可以获得键和值的分隔变量。像这样:
<% @lv.each_pair do |key, value| %>
<%= key %>
<% end %>
编辑
这也是对您在问题中的评论的回应。keywill 最终只是你的哈希的, appleor 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]...等。
让我知道这是否不是您要问的。