Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

error in request.location ruby geocoder

In my sesions table I'm storing country and city name using the request method, now, in ubuntu server it works well but in redhat I am getting this error

NoMethodError (undefined method `city' for nil:NilClass)

I have tried this issue solution and I restarted my server but it doesn't work for me.

In both servers I am using Passenger + Apache

like image 226
rderoldan1 Avatar asked Aug 19 '26 14:08

rderoldan1


1 Answers

I have found the issue, it was that the search IP was taking too much time, so I created an initializer and changed the default timeout

config/initializer/geocoder.rb

Geocoder.configure(
 :timeout => 20
)

How I found

I open the rails c and search my IP

$ location = Geocoder.search("myIpAddres")
Geocoding API not responding fast enough (use Geocoder.configure(:timeout => ...) to set limit).
=> []

Now it works

$ location = Geocoder.search("myIpAddres")
=> [#<Geocoder::Result::Freegeoip:0xa7130b8 @data={"ip"=>"myIpAddres", "country_code"=>"CO", "country_name"=>"Colombia", "region_code"=>"02", "region_name"=>"Antioquia", "city"=>"Medellín", "zipcode"=>"", "latitude"=>6.2518, "longitude"=>-75.5636, "metro_code"=>"", "areacode"=>""}, @cache_hit=nil>]
like image 179
rderoldan1 Avatar answered Aug 22 '26 09:08

rderoldan1