Meskipun saya tidak ragu bahwa jawaban Björn Nilsson berfungsi ketika dia mempostingnya, itu gagal untuk saya dengan Postgres 9.4
dan versi permata PG 0.18.2
. Saya telah menemukan yang berikut ini berfungsi setelah melihat-lihat dokumentasi permata PG:
pg = ActiveRecord::Base.connection
@type_map ||= PG::BasicTypeMapForResults.new(pg.raw_connection)
res = pg.execute("SELECT 'abc'::TEXT AS a, 123::INTEGER AS b, 1.23::FLOAT;")
res.type_map = @type_map
res[0]
# => {"a"=>"abc", "b"=>123, "float8"=>1.23}