PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Abrufen von typisierten Ergebnissen aus ActiveRecord-Roh-SQL

Obwohl ich keinen Zweifel daran habe, dass Björn Nilssons Antwort funktionierte, als er sie veröffentlichte, schlägt sie für mich mit Postgres 9.4 fehl und PG-Gem-Version 0.18.2 . Ich habe festgestellt, dass Folgendes funktioniert, nachdem ich die PG-Gem-Dokumentation durchgesehen habe:

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}