Я не уверен, что полностью понимаю ваш вопрос, но, думаю, вы хотите преобразовать 2d массив в хеш
Предположим, у вас есть массив, такой как:
array = [[:foo,1],[:bar,2],[:baz,3]]
Вы можете создать хеш с помощью:
hash = array.inject({}) {|h,e| h[e[0]] = e[1]; h}
# => {:foo=>1, :bar=>2, :baz=>3}
И вы можете получить ключи в правильном порядке с помощью:
keys = array.inject([]) {|a,e| a << e[0] }
=> [:foo, :bar, :baz]
Это то, что вы искали?