Ruby on rails 从rails数组中获取特定值
我想我有一个适合rails的正确数组Ruby on rails 从rails数组中获取特定值,ruby-on-rails,arrays,ruby-on-rails-3,loops,Ruby On Rails,Arrays,Ruby On Rails 3,Loops,我想我有一个适合rails的正确数组 @lv = {'apple' => ['tags', 'red'], 'name' => ['more tags', 'taggers']} 我想知道如何通过循环显示某些部分。例如,我如何只显示apple和name <% @lv.each do |me| %> <%= me %> <% end %> 这只是显示整个@lv消息,而不仅仅显示apple和name。然后,我希望能够只获取特定标签的标签值
@lv = {'apple' => ['tags', 'red'], 'name' => ['more tags', 'taggers']}
我想知道如何通过循环显示某些部分。例如,我如何只显示apple
和name
<% @lv.each do |me| %>
<%= me %>
<% end %>
这只是显示整个@lv消息,而不仅仅显示apple
和name
。然后,我希望能够只获取特定标签的标签值,所以如果我需要获取apple
的标签值,它应该只显示tags
和red
如何使用rails
谢谢 您的
@lv
变量是一个散列,因此使用。每个只会给您一个组合的键值对作为块参数(这就是me
的最终结果)。相反,请使用每个_对;这样,您就可以为键和值获取单独的变量。像这样:
<% @lv.each_pair do |key, value| %>
<%= key %>
<% end %>
作为逗号分隔的字符串:
....looping code
<%= value.join(", ") %>
…循环代码
或者按照数组表示法将其吐出:
....looping code
<%= value %>
…循环代码
或者,如果您只需要值数组中的一个特定元素,则可以执行value[0]
或value[1]
等操作
让我知道这是否不是您要问的。关于问题的第二部分,“特定值的标记值”是什么意思?数组中的标记
项在某种程度上是特殊的吗?@Teeg我希望能够输出每个标记,如果它是键[0]之类的东西?不知道它是怎样的,但如果它类似于PHP,我会调用第一个数组,然后它会从第一个数组键apple(使用带有键[0]的循环)输出值,这更有意义吗?@andrewlio See answer Update我希望能够在某种链接中输出键。因此,如果用户单击苹果
,标签就会显示出来。换句话说,我如何只输出特定于名称的标记(apple
或name
)?这正是我要问的!非常感谢你!有一个问题:如果我只想迭代apple
,而不是name
?我可以只做@lv[0]吗?每对?或者[0]
会出现在这里:@lv.each|u pair do | key[0],value |
?@andrewliu不,你会按名称引用特定的键,所以你会使用@lv[:apple]。每个do | apple| u values |…
@andrewliu你不能,不。它们的键是一个单词。如果您有一个更深层次的结构,比如{:apple=>{:more\u apples=>“some value”}
,那么您可以像@lv[:apple][:more\u apples]
一样引用它。
....looping code
<%= value %>