Допустим, я работаю в тренажерном зале для скалолазания и пытаюсь облегчить процесс посещения.Здесь я пытаюсь получить доступ к age
значениям внутри хешей, которые находятся в массиве, вложенном в хеш.Хотя я получаю правильное количество выводимых «belayers», я также получаю TypeError для строки parties[:attendance].each do |kid|
.Я понимаю, что это неправильно, но я не уверен, как это исправить.Любой совет будет полезен.
def kids_hash
kids_hash = {
:party_one =>{
:facilitator => 'Erica',
:attendance => [
{name: 'Harry', age: 6, wavers: 'yes', harness: "red", shoe_size: 3},
{name: 'Frankie', age: 9, wavers: 'yes', harness: "blue", shoe_size: 7},
{name: 'Gale', age: 4, wavers: 'yes', harness: "red", shoe_size: 3},
{name: 'Rony', age: 4, wavers: 'no', harness: "red", shoe_size: 2},
{name: 'Julia', age: 10, wavers: 'yes', harness: "blue", shoe_size: 9},
{name: 'Sarah', age: 3, wavers: 'no', harness: "red", shoe_size: 13},
{name: 'James', age: 3, wavers: 'yes', harness: "red", shoe_size: 2},
{name: 'Kevin', age: 5, wavers: 'yes', harness: "red", shoe_size: 3},
{name: 'Jessie', age: 11, wavers: 'yes', harness: "blue", shoe_size: 10}
]
},
:party_two => "not booked yet"
}
end
def num_belayers
kid_count = 0
baby_count= 0
kids_hash.values.each do |parties|
parties[:attendance].each do |kid|
if kid[:age] >= 5
kid_count += 1
else
baby_count +=1
end
end
#if the kids are 5 y/o, we put 5 to a group
belays_kids = kid_count / 5.00
#if they are younger, there are 3 to a group
belays_babies = baby_count / 3.00
belays = belays_kids.ceil + belays_babies.ceil
puts "You will need #{belays} belayers."
end
end