Variable local no definida para hash en método ruby
por alguna razón me estoy poniendo
NameError: undefined local variable or method `states' for main:Object
aunque los estados están claramente definidos. ¿Que esta pasando aqui?
En irb agregué estados y accedí bien usando estados [: CA] pero cuando lo puse en un método obtuve ese error.
states = {
CA: 'California',
FL: 'Florida',
MI: 'Michigan',
NY: 'New York',
OR: 'Oregon',
}
states[:CO] = 'Colorado'
states[:HI] = 'Hawaii'
cities = {
CA: ['Alameda', 'Apple Valley', 'Exeter'],
FL: ['Exeter', 'Amelia Island', 'Bunnell'],
MI: ['Ann Arbor', 'East China', 'Elberta'],
NY: ['Angelica', 'Apalachin', 'Canadice'],
OR: ['Amity', 'Boring', 'Camas Valley'],
CO: ['Blanca', 'Crestone', 'Dillon', 'Fairplay'],
HI: ['Kailua', 'Hoopili', 'Honolulu'],
}
def describe_state state
puts state
description = "#{state.to_s} is for #{states[state]}."
description << " It has #{citites[state].length} major cities:"
cities[state].each do |x| ' ' << description end
end
puts describe_state :CA