Возможно, это не самый эффективный способ, но я всегда ценю однострочники, которые раскрывают немного больше об универсальности Ruby:
h = Hash[['a', 'b', 'c'].collect { |v| [v, 0] }]
Или другой однострочник, который делает то же самое:
h = ['a', 'b', 'c'].inject({}) {|h, v| h[v] = 0; h }
Кстати, с точки зрения производительности, однострочники работают примерно на 80% скорости:
h = {}
ary = ['a','b','c']
ary.each { |a| h[a]=0 }