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?