connection.select_value gibt nur Strings in postgres mit pg gem zurück

Ich konvertiere eine Rails-App von mysql (mysql2 gem) nach postgres (pg gem).

Mit MySQL,ActiveRecord::Base.connection.select_value ruft Rückgabewerte auf, die gemäß den Daten eingegeben wurden, zum Beispiel:

> ActiveRecord::Base.connection.select_value("SELECT COUNT(*) FROM errors")
=> 86
> ActiveRecord::Base.connection.select_value("SELECT exception FROM errors where id=565")
=> "TechTalk.Genome.SqlExecutionException"
> ActiveRecord::Base.connection.select_value("SELECT id FROM errors where id=565")
=> 565

Jedoch mit Postgres,connection.select_value Gibt immer einen String zurück:

> ActiveRecord::Base.connection.select_value("SELECT COUNT(*) FROM errors")
=> "1"
> ActiveRecord::Base.connection.select_value("SELECT id FROM errors")
=> "1"
> ActiveRecord::Base.connection.select_value("SELECT source FROM errors limit 1")
=> "webapp"

Dies hat einige Komponententests durchbrochen, und obwohl diese repariert werden können, sind wir sicher, dass wir anderen Code haben, der auf diesen Rückgabewerten basiert.Gibt es eine Möglichkeit, ordnungsgemäß typisierte Rückgabewerte von zu erhalten?connection.select_value bei der Verwendung von Postgres?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage