2

正確な理由はわかりませんが、構成ファイルに従っていないように見えるという事実を除いて、gem は正常に動作しています。

「puts」コマンドで初期化をテストすると、ファイルが読み取られていることがコンソールに表示されます。

中心的な問題は、メソッド ルックアップを使用して、maxmind または google の IP ロケーション サービスを使用してユーザーの位置を特定するジオコーダー gem を作成したいということです。

自分で作成した /config/initializers/geocoder.rb ファイル ウィッチは次のとおりです。

# config/initializers/geocoder.rb

def self.options_and_defaults
  [
      # geocoding service timeout (secs)
      [:timeout, 3],

      # name of geocoding service (symbol)
      [:lookup, :google],

      # ISO-639 language code
      [:language, :en],

      # use HTTPS for lookup requests? (if supported)
      [:use_https, false],

      # HTTP proxy server (user:pass@host:port)
      [:http_proxy, nil],

      # HTTPS proxy server (user:pass@host:port)
      [:https_proxy, nil],

      # API key for geocoding service
      [:api_key, nil],

      # cache object (must respond to #[], #[]=, and #keys)
      [:cache, nil],

      # prefix (string) to use for all cache keys
      [:cache_prefix, "geocoder:"],

      # exceptions that should not be rescued by default
      # (if you want to implement custom error handling);
      # supports SocketError and TimeoutError
      [:always_raise, []]
  ]
end

また、このコードを Google API コードと検索用の Google で使用し、maxmind で使用しました...両方とも、実際にはジオコーダーがまだ freegeoip を使用していることを返します

コントローラーに「puts」エントリを次のように実装しました。

puts 'oioioi'
puts request.ip
puts Geocoder.search(request.ip).first
puts request.location  

コンソール出力でそれを検出できました。

私が得た:

oioioi
127.0.0.1
#<Geocoder::Result::Freegeoip:0x007fbe846eb258>
#<Geocoder::Result::Freegeoip:0x007fbe847232e8> 

私はローカルIPを使用していることを知っていますが、すでに展開でテストしており、実際にはルックアップはまだFreegeoipをルックアップサーバーとして使用しています.

誰かが私を助けてくれることを願っています...事前に感謝します。

4

1 に答える 1