2012-05-23 75 views
0

我有一个数组(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"}]} 

回答

0

不知道Ruby on Rails的,但看你写的是我的猜测:

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

no。我想使它成为一个键值对,并且以一个附加字符串作为键和一个现有数组作为值 –

1

的红宝石Hash litteral正确的语法是:

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

此语法仅适用于红宝石> 1.9和哈希值,只有具有symbols作为键:

hash = { symbol_key: value } 

PS:你应该深入到了良好的红宝石本书来学习的基础知识。 rubyist中一个公认的参考是"pickaxe"

0

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

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

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

1

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

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