sql >> Base de Datos >  >> RDS >> PostgreSQL

Obtener resultados escritos de ActiveRecord raw SQL

Si bien no tengo ninguna duda de que la respuesta de Björn Nilsson funcionó cuando la publicó, me está fallando con Postgres 9.4 y PG gem versión 0.18.2 . Descubrí que lo siguiente funciona después de revisar la documentación de la gema 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}