Ho problemi a ottenere risultati digitati dalla gemma pg.pg gem: 'Attenzione: nessun tipo di cast definito per il tipo "numerico"'
require 'pg'
require_relative 'spec/fixtures/database'
client = PG.connect(DB[:pg])
client.type_map_for_queries = PG::BasicTypeMapForQueries.new(client)
client.type_map_for_results = PG::BasicTypeMapForResults.new(client)
client.exec(%|select * from testme;|) do |query|
query.each {|r| puts r.inspect }
end
Questo programma dà l'output:
Warning: no type cast defined for type "money" with oid 790. Please cast this type explicitly to TEXT to be safe for future changes.
Warning: no type cast defined for type "numeric" with oid 1700. Please cast this type explicitly to TEXT to be safe for future changes.
{"string"=>"thing", "logical"=>true, "cash"=>"£1.23", "reel"=>"2.34", "day"=>#<Date: 2015-12-31 ((2457388j,0s,0n),+0s,2299161j)>, "float"=>3.45}
Quindi: booleani e carri e date (e interi) vengono convertiti, ma non numerici o il tipo di denaro.
Qualcuno può dirmi come "eseguire il cast del tipo in modo esplicito", assumendo che non si desideri codificare in modo rigido una soluzione per ogni tabella?
PS dopo tanti anni di in agguato, mi sono appena iscritto a SO e questo è il mio primo contributo. Guida apprezzata;) – Giuse
C'è un errore di battitura nel codice ('new_coder' ->' name_coder') e mi ci sarebbero voluti due minuti anziché cinque per verificare la tua risposta se avessi mostrato il messaggio di errore. Ma niente di tutto questo è importante. Hai risolto ciò che nessun altro potrebbe, anche quando ho offerto una taglia. Spunta, spunta, spunta. Grazie molto! –
Non ho alcun errore da mostrare, dal momento che utilizzo 'nome_coder' nella mia implementazione. Il mio campo è in realtà chiamato 'nome', quindi la mia scelta di' nome_codice', che sfortunatamente echi 'c.name' nel codice ... confuso ancora? Ecco perché ho provato a cambiare il nome: P Grazie per aver individuato l'ultimo di loro, ero praticamente esaurito per il giorno in cui ho scritto questa risposta. Felice di aiutare! :) – Giuse