TypeError: no implicit conversion of Symbol into Integer
ruby, ruby-on-rails
Solution
Your `item` variable holds `Array` instance (in `[hash_key, hash_value]` format), so it doesn't expect `Symbol` in `[]` method.
This is how you could do it using `Hash#each`:
def format(hash)
output = Hash.new
hash.each do |key, value|
output[key] = cleanup(value)
end
output
end
or, without this:
def format(hash)
output = hash.dup
output[:company_name] = cleanup(output[:company_name])
output[:street] = cleanup(output[:street])
output
end
Problem
I encounter a strange problem when trying to alter values from a Hash. I have the following setup: ``` myHash = { company_name:"MyCompany", street:"Mainstreet", postcode:"1234", city:"MyCity", free_seats:"3" } def cleanup string string.titleize end def format output = Hash.new myHash.each do |item| item[:company_name] = cleanup(item[:company_name]) item[:street] = cleanup(item[:street]) output << item end end ``` When I execute this code I get: "TypeError: no implicit conversion of Symbol into Integer" although the output of item[:company_name] is the expected string. What am I doing wrong?