将数组分配给字符串键?

时间:2012-05-23 11:55:43

标签: ruby-on-rails arrays

我有一个数组(Ruby on Rails),如:

[{"name"=>"Start Time", "id"=>3, "value"=>"15:00"}, 
 {"name"=>"End Time",   "id"=>4, "value"=>"16:00"}]

如何将此数组分配给键,使其如下所示:

{"custom_fields": [{"name"=>"Start Time", "id"=>3, "value"=>"15:00"}, 
                   {"name"=>"End Time",   "id"=>4, "value"=>"16:00"}]}

4 个答案:

答案 0 :(得分:1)

ruby​​ Hash litteral的正确语法是:

hash = { "string key" => value }
hash = { :symbol_key  => value }

此语法仅适用于ruby> 1.9以及仅以symbols为键的哈希值:

hash = { symbol_key: value }

ps:你应该深入研究一本好的红宝石书来学习基础知识。 rubyist中公认的参考是"pickaxe"

答案 1 :(得分:1)

你非常接近。与其他用户一样,如果您的哈希键是字符串,则需要使用旧语法=>

{"custom_fields" => [{"name"=>"Start Time", "id"=>3, "value"=>"15:00"}, 
                   {"name"=>"End Time",   "id"=>4, "value"=>"16:00"}]}

答案 2 :(得分:0)

不知道轨道上的红宝石,但我从你所写的内容中猜测是:

[{"custom_fields"=>{{"name"=>"Start Time", "id"=>3, "value"=>"15:00"}, {"name"=>"End Time", "id"=>4, "value"=>"16:00"}}}]

答案 3 :(得分:0)

只需创建一个新哈希并将您的数组分配给键custom_fields

myHash = Hash.new
myHash['custom_fields'] = myArray

另外,我建议你阅读哈希和数组;它们在Ruby中不是一回事 例如,如果您来自PHP背景,则可以假装散列是关联数组,而数组是......没有键的数组(例如[:a, :b, :c])。