У меня есть эта ошибка NoMethodError (undefined method 'each' for 8:Fixnum)
: со ссылкой на эту строку кода:NoMethodError (неопределенный метод `каждый» для 8: Fixnum):
my_hash.key("free").each{|key| my_array.push(key)}
То, что я пытаюсь сделать, это «для каждой записи в my_hash который имеет значение «бесплатно», добавьте его в my_array ». Это происходит, потому что my_hash.key («бесплатно») возвращает только одно значение? Если да, то как я могу изменить это, чтобы делать то, что я желаю?
здесь больше окружающего кода для справки:
my_hash = Hash.new
(8..18).each {|i| my_hash[i] = "free"}
my_array = Array.new
...
hour_array.each{|hour| my_hash[hour] = "busy"} #this is to show that not every key will have value "free"
...
my_hash.key("free").each{|key| my_array.push(key)}
Любые объяснения были бы очень признательны, так как я новичок в Ruby, спасибо!
Я хотел бы сохранить ключи, а не значения, в my_array –
@SCraig ok Я изменил свой код (все, что я сделал, это изменить 'v' на' k' в блоке кода 'select'. Посмотрите. –
@SCraig просто обновил возвращаемые значения, которые в любом случае не должны влиять на предыдущий код. –