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"}]}
4

4 回答 4

1

ruby Hash litteral 的正确语法是:

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

此语法仅适用于 ruby​​ > 1.9 和只有符号作为键的哈希:

hash = { symbol_key: value }

ps:您可能应该深入研究一本好的 ruby​​ 书籍来学习基础知识。rubyist 中公认的参考书是“pickaxe”

于 2012-05-23T12:14:01.530 回答
1

你非常接近。=>就像另一位用户所说,如果您的哈希键是字符串,您将需要使用旧语法。

{"custom_fields" => [{"name"=>"Start Time", "id"=>3, "value"=>"15:00"}, 
                   {"name"=>"End Time",   "id"=>4, "value"=>"16:00"}]}
于 2012-05-23T12:43:38.273 回答
0

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

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

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

于 2012-05-23T12:36:58.330 回答
0

不知道 ruby​​ on rails,但我从你写的内容中猜想是:

[{"custom_fields"=>{{"name"=>"Start Time", "id"=>3, "value"=>"15:00"}, {"name"=>"End Time", "id"=>4, "value"=>"16:00"}}}]
于 2012-05-23T12:00:08.160 回答