2017-02-20 7 views
0

Вот хэшДобавить массив длиной х дорожить в ключе: значение хэша с помощью рубином

personal_details = { 
    name: name, 
    dob: dob, 
    age: age, 
    height: height 
} 

Вот массив

puts "What are the name of some of your relatives? (eg. Bob, James, Harry etc)" 
relatives = gets().chomp.split(",") 

Допустит, вход для родственников был «Боб, Джеймс, Гарри ».

Я хочу, чтобы хэш выглядеть следующим образом:

personal_details = { 
    name: name, 
    dob: dob, 
    age: age, 
    height: height 
    relatives: [ 
     {name: Bob}, 
     {name: James}, 
     {name: Harry} 
    ] 
} 

массив в хэш обновляется на основе пользовательского ввода.

ответ

2

Начните с инициализацией родственников как массив:

personal_details = { 
    name: name, 
    dob: dob, 
    age: age, 
    height: height, 
    relatives: [] 
} 

Тогда для каждого родственника, нажмите на массив:

relatives = gets().chomp.split(",") 
relatives.each do |relative| 
    personal_details.relatives.push(name: relative) 
end 
+0

Это работало 'personal_details [: родственники] .С (имя: г elative) ' – Mohammad

+0

Тогда, пожалуйста, отметьте как ответ, когда вы можете :) –

0

Это должно работать, если я интерпретировал вопрос, как предполагалось:

personal_details[:relatives] = relatives.map{|r| {name: r}}