2011-03-09 62 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]