正確な理由はわかりませんが、構成ファイルに従っていないように見えるという事実を除いて、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をルックアップサーバーとして使用しています.
誰かが私を助けてくれることを願っています...事前に感謝します。