2011-03-09 34 views
3

我想在rails应用程序中使用geokit-rails3 gem来寻找地理位置信息。我有一个简单的模型:使用Rails 3和Geokit-rails3位置gem

class Location < ActiveRecord::Base 
    def lookup_ip_information(post_ip) 
    ip = post_ip 
    location = IpGeocoder.geocode(ip) 
    puts location.full_address 
    lat = location.lat 
    lng = location.lng 
    end 
end 

当我把这种方法用request.remote_ip从我的控制器,它抛出一个错误:uninitialized constant Location::IpGeocoder

回答

6

我只是有这个问题,并通过输入完整

Geokit::Geocoders::IpGeocoder.geocode(request.remote_ip) 
解决它

这似乎是为我解决它。

1

有同样的问题,无法让IpGeocoder在Rails3中使用以上建议。挖掘到宝石的Rails3源代码。看起来像一个简单的方法来解决,这是用于轨Geokit MultiGeocoder方法3.

例: LOC = Geokit ::地址解析器:: MultiGeocoder.geocode(remote.request_ip)

不要忘记在您的初始化程序中正确设置MultiGeocoder - geokit_config.rb Geokit :: Geocoders :: provider_order = [:google,:us]