Блок должен вернуть аккумулятор (хеш), как сказал @Rob.Некоторые альтернативы:
С Hash#update
:
hash = ['a', 'b'].inject({}) { |m, e| m.update(e => e) }
С Enumerable#each_with_object
:
hash = ['a', 'b'].each_with_object({}) { |e, m| m[e] = e }
С Hash#[]
:
hash = Hash[['a', 'b'].map { |e| [e, e] }]
С Array#to_h
(Ruby> = 2,1):
hash = ['a', 'b'].map { |e| [e, e] }.to_h
С Перечислимый # пюре из граней:
require 'facets'
hash = ['a', 'b'].mash { |e| [e, e] }