PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ottenere risultati digitati da ActiveRecord Raw SQL

Anche se non ho dubbi sul fatto che la risposta di Björn Nilsson abbia funzionato quando l'ha pubblicata, per me non riesce con Postgres 9.4 e PG gem versione 0.18.2 . Ho riscontrato che quanto segue funziona dopo aver esaminato la documentazione di PG gem:

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}