Buenas una consulta sobre un problema de tipos calculo yo:
estoy intentando sacar información de un registro donde almaceno la geo localización por IP
el campo contiene esta información:
irb(main):061:0> Trace.first.geo
Trace Load (1.8ms) SELECT "traces".* FROM "traces" ORDER BY "traces"."id" ASC LIMIT 1
=> "{\"ip\"=>\"181.228.18.93\", \"country_code\"=>\"AR\", \"country_name\"=>\"Argentina\", \"region_code\"=>\"C\", \"region_name\"=>\"Buenos Aires F.D.\", \"city\"=>\"Buenos Aires\", \"zip_code\"=>\"1871\", \"time_zone\"=>\"America/Argentina/Buenos_Aires\", \"latitude\"=>-34.604, \"longitude\"=>-58.382, \"metro_code\"=>0}"
irb(main):062:0> eval(Trace.first.geo)
Cuando quiero convertirla en un arreglo sucede esto:
irb(main):061:1a = eval(Trace.last.geo)
Trace Load (1.5ms) SELECT "traces".* FROM "traces" ORDER BY "traces"."id" DESC LIMIT 1
=> {"ip"=>"181.228.27.17", "country_code"=>"AR", "country_name"=>"Argentina", "region_code"=>"C", "region_name"=>"Buenos Aires F.D.", "city"=>"Buenos Aires", "zip_code"=>"1871", "time_zone"=>"America/Argentina/Buenos_Aires", "latitude"=>-34.604, "longitude"=>-58.382, "metro_code"=>0}
irb(main):066:0> a.values[4]
=> "Buenos Aires F.D."
Bien ahora quiero recorrer todos para sacar un registro:
SyntaxError in CitiesController#index
(eval):1: syntax error, unexpected end-of-input, expecting ']' ...tro_code"=>0}, @cache_hit=nil>] ... ^
@trace = Trace.all
@trace.each do |reg|
if reg.geo
@country = eval(reg.geo).values[2]
end
end
Si a alguien se le ocurre que puede ser le agradezco la respuesta.
* ambas respuestas son "String"
--
Giménez Silva Germán Alberto