Your @lv variable is a hash, so using .each will only give you a combined key-value pair as the block parameter (that's what me ends up being). Instead, use each_pair; that way you can get separated variables for the keys and the values. Like so:
<% @lv.each_pair do |key, value| %> <%= key %> <% end %>
Edit
This is in response to your comment in the question as well. The key will end up being just the apple, or name, part of your hash. The value parameter is whatever is pointed to by the key, which in this case is the actual array of items (which I think is what you're calling tags). For example, your hash contains two key-value pairs, and as we iterate over them, in the first loop key = apple, and value=['tags', 'red']. To output that array of values, you could do it a couple of different ways:
Loop over the tag array
<% @lv.each_pair do |key, value| %> <%= key %> <%= value.each do |tag| %> <%= tag %> <%= end %> <% end %>
As a comma separated string:
....looping code <%= value.join(", ") %>
Or just spit it out as-is in array notation:
....looping code <%= value %>
Or if you just wanted a specific element in the value array, then yes you can just do value[0], or value[1]...etc.
Let me know whether that is not what you are asking.
tagsitem in the array special in some way?