Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从rails数组中获取特定值_Ruby On Rails_Arrays_Ruby On Rails 3_Loops - Fatal编程技术网

Ruby on 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。然后,我希望能够只获取特定标签的标签值

我想我有一个适合rails的正确数组

@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 %>