2012-05-23 76 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"}]}