使用Rails 3和Geokit-rails3位置gem

时间:2011-03-09 09:56:25

标签: ruby-on-rails-3 geokit

我正在尝试将geokit-rails3 gem用于rails应用程序中的地理位置信息。我有一个简单的模型:

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

2 个答案:

答案 0 :(得分:7)

我刚刚遇到了这个问题并通过输入完整的

解决了这个问题
Geokit::Geocoders::IpGeocoder.geocode(request.remote_ip)

这似乎为我解决了。

答案 1 :(得分:1)

有同样的问题,并且无法通过上述建议让IpGeocoder在Rails3中工作。挖掘gem的Rails3源代码。看起来解决这个问题的简单方法是使用Geokit MultiGeocoder方法用于Rails 3.

实施例: loc = Geokit :: Geocoders :: MultiGeocoder.geocode(remote.request_ip)

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