Ruby on rails 3 将Rails 3与Geokit-rails3一起使用

Ruby on rails 3 将Rails 3与Geokit-rails3一起使用,ruby-on-rails-3,geokit,Ruby On Rails 3,Geokit,我正在尝试在rails应用程序中使用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 =

我正在尝试在rails应用程序中使用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
类位置

当我通过控制器调用这个方法时,它抛出了一个错误:
未初始化的常量位置::IpGeocoder
我刚刚遇到了这个问题,通过输入完整的

Geokit::Geocoders::IpGeocoder.geocode(request.remote_ip)

这似乎解决了我的问题。

也有同样的问题,无法让IpGeocoder在Rails3中使用上述建议。深入研究了gem的Rails3源代码。看起来解决这个问题的一个简单方法是对Rails 3使用Geokit MultiGeocoder方法

例如: loc=Geokit::Geocoders::multi-geocoder.geocode(remote.request\u-ip)

别忘了在初始值设定项-geokit_config.rb中正确设置MultiGeocoder Geokit::Geocoders::provider_order=[:谷歌,:美国]