创建数组并在每个中附加键和值

时间:2015-10-09 08:59:04

标签: ruby-on-rails ruby

我想创建一个数组,然后为每个键插入值(键应该是每个键的值)。但似乎不起作用。这是我的代码。

@options = %w(Services Resources)
@images  = []
@options.each do |value|
    @images[value] << Media::Image.where(type: "Media::#{value.singularize}Image")
end

2 个答案:

答案 0 :(得分:2)

@images是一个数组,因此引用其中的元素应该是@images[Integer]value是一个字符串(在第一次迭代中它是&#34; s&#34;服务&#34 ;以及第二个&#34;资源&#34;)。相反,对你有用的是Hash

@options = %w(Services Resources)
@images  = {}
@options.each do |value|
    @images[value] = Media::Image.where(type: "Media::#    {value.singularize}Image")
end

答案 1 :(得分:0)

@images是一个Array,Array不能用作Hash。 也许你想要像这样创建一个Hash

@images = Hash.new {|h,k| h[k]=[]}