Geokit - `блок (2 уровня) в <class: Railtie>': неопределенный метод
Я перевожу приложение Rails 2.3.8 на Rails 3.0.20, поэтому я перешел от использования "gem 'geokit' 1.6.0" к "gem "geokit-rails".
Я получил:
/Users/alextoul/.rvm/gems/ruby-1.9.3-p484@rails3/gems/geokit-rails-2.0.1/lib/geokit-rails/railtie.rb:33:in `block (2 levels) in <class:Railtie>': undefined method `proxy_addr=' for Geokit::Geocoders:Module (NoMethodError)
Мой geokit_config.rb это:
MyApp::Application.configure do
# These defaults are used in Geokit::Mappable.distance_to and in acts_as_mappable
config.geokit.default_units = :miles
config.geokit.default_formula = :sphere
# This is the timeout value in seconds to be used for calls to the geocoder web
# services. For no timeout at all, comment out the setting. The timeout unit
# is in seconds.
config.geokit.geocoders.request_timeout = 3
# These settings are used if web service calls must be routed through a proxy.
# These setting can be nil if not needed, otherwise, addr and port must be
# filled in at a minimum. If the proxy requires authentication, the username
# and password can be provided as well.
config.geokit.geocoders.proxy_addr = nil
config.geokit.geocoders.proxy_port = nil
config.geokit.geocoders.proxy_user = nil
config.geokit.geocoders.proxy_pass = nil
# This is your yahoo application key for the Yahoo Geocoder.
# See http://developer.yahoo.com/faq/index.html#appid
# and http://developer.yahoo.com/maps/rest/V1/geocode.html
config.geokit.geocoders.yahoo = 'secret'
# This is your Google Maps geocoder key.
# See http://www.google.com/apis/maps/signup.html
# and http://www.google.com/apis/maps/documentation/#Geocoding_Examples
config.geokit.geocoders.google = 'secret'
# You can also set multiple API KEYS for different domains that may be directed to this same application.
# The domain from which the current user is being directed will automatically be updated for Geokit via
# the GeocoderControl class, which gets it's begin filter mixed into the ActionController.
# You define these keys with a Hash as follows:
#config.geokit.geocoders.google = { 'rubyonrails.org' => 'RUBY_ON_RAILS_API_KEY', 'ruby-docs.org' => 'RUBY_DOCS_API_KEY' }
# This is your username and password for geocoder.us.
# To use the free service, the value can be set to nil or false. For
# usage tied to an account, the value should be set to username:password.
# See http://geocoder.us
# and http://geocoder.us/user/signup
config.geokit.geocoders.geocoder_us = false
# This is your authorization key for geocoder.ca.
# To use the free service, the value can be set to nil or false. For
# usage tied to an account, set the value to the key obtained from
# Geocoder.ca.
# See http://geocoder.ca
# and http://geocoder.ca/?register=1
config.geokit.geocoders.geocoder_ca = false
# require "external_geocoder.rb"
# Please see the section "writing your own geocoders" for more information.
# config.geokit.geocoders.external_key = 'REPLACE_WITH_YOUR_API_KEY'
# This is the order in which the geocoders are called in a failover scenario
# If you only want to use a single geocoder, put a single symbol in the array.
# Valid symbols are :google, :yahoo, :us, and :ca.
# Be aware that there are Terms of Use restrictions on how you can use the
# various geocoders. Make sure you read up on relevant Terms of Use for each
# geocoder you are going to use.
config.geokit.geocoders.provider_order = [:google,:us]
# The IP provider order. Valid symbols are :ip,:geo_plugin.
# As before, make sure you read up on relevant Terms of Use for each.
# config.geokit.geocoders.ip_provider_order = [:external,:geo_plugin,:ip]
end
Когда я удаляю файл geokit_config.rb, сервер запускается, но у меня, очевидно, есть:
ArgumentError (Unknown key(s): origin, within):
Любая идея?
1 ответ
proxy_addr/port/user и pass были заменены просто proxy, который представляет собой строку вроде:
https://user:password@host:port
Так что, если у вас было:
config.geokit.geocoders.proxy_addr = nil
config.geokit.geocoders.proxy_port = nil
config.geokit.geocoders.proxy_user = nil
config.geokit.geocoders.proxy_pass = nil
Это снег:
config.geokit.geocoders.proxy = nil
PS. Вам не нужно переключаться с геокита на геокит-рельсы, ведь они разные. geokit-rails - это geokit PLUS, некоторые вещи для рельсов, такие как activ_as_mappable.
Если вам не нужны геокит-рельсы до обновления, вам не нужно это после. Он просто добавляет дополнительные предметы, которые специально для рельсов, если вы хотите их.