【问题标题】:Gem GeoKit: uninitialized constant GeoKit::Geocoders::Geocoder when trying to initialize my own geocoderGem GeoKit:尝试初始化我自己的地理编码器时未初始化的常量 GeoKit::Geocoders::Geocoder
【发布时间】:2014-06-24 02:25:20
【问题描述】:

我按照安装 geokit-rails (v 2.0.1) 和 geokit (v 1.8.5) 的说明进行操作。然后尝试创建我自己的地理编码器(用于测试)。这是我在 config/initializers/fake_geocoder.rb 文件中使用的代码

require 'geokit'

module GeoKit
  module Geocoders
    class FakeGeocoder < Geocoder
      #to use, include :fake in the list of geocoders
      private

      def self.do_geocode(location, options = {})
          geocode_payload = GeoKit::GeoLoc.new(:lat => 123.456, :lng => 123.456)  
          geocode_payload.success = true 
          return geocode_payload
      end
    end
  end
end

尝试启动 rails 控制台(bundle exec rails c)时,我收到以下错误:

../config/initializers/fake_geocoder.rb:6:in    `<module:Geocoders>': uninitialized constant GeoKit::Geocoders::Geocoder (NameError)
from ../config/initializers/fake_geocoder.rb:5:in `<module:GeoKit>'
from ../config/initializers/fake_geocoder.rb:4:in `<top (required)>'

您可以就为什么找不到 Geocoder 类提供任何建议,我们将不胜感激。

【问题讨论】:

    标签: ruby-on-rails geokit


    【解决方案1】:

    有一段时间,Geokit 和 GeoKit(大写 K)起作用了。 1.7.1 移除了 GeoKit。

    只需用 Geokit 替换对 GeoKit 的任何引用

    我是 Geokit 的维护者,所以如果有任何 README 过时(我看不到任何),请告诉我。

    【讨论】:

    • 谢谢你,Michael - 我现在手头没有代码,但今晚会进行更改并对其进行测试,并相应地标记你的答案。
    • 成功了。一个小小的纪念。使用 README 中的配置设置,我收到以下错误:Geokit::Geocoders::GeonamesGeocoder:Class 的未定义方法 `premium='。注释掉该行允许我继续。
    • 哇。这为我节省了大量时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多