diff --git a/lib/geokit-rails3/acts_as_mappable.rb b/lib/geokit-rails3/acts_as_mappable.rb index a1c9003..e7ba685 100644 --- a/lib/geokit-rails3/acts_as_mappable.rb +++ b/lib/geokit-rails3/acts_as_mappable.rb @@ -41,9 +41,10 @@ def acts_as_mappable(options = {}) if options.include?(:auto_geocode) && options[:auto_geocode] # if the form auto_geocode=>true is used, let the defaults take over by suppling an empty hash options[:auto_geocode] = {} if options[:auto_geocode] == true - cattr_accessor :auto_geocode_field, :auto_geocode_error_message + cattr_accessor :auto_geocode_field, :auto_geocode_error_message, :swallow_errors self.auto_geocode_field = options[:auto_geocode][:field] || 'address' self.auto_geocode_error_message = options[:auto_geocode][:error_message] || 'could not locate address' + self.swallow_errors = options[:auto_geocode][:swallow_errors] || false # set the actual callback here before_validation :auto_geocode_address, :on => :create @@ -279,11 +280,15 @@ def flat_distance_sql(origin, units) # this is the callback for auto_geocoding def auto_geocode_address address=self.send(auto_geocode_field).to_s + # don't try if the address is blank + return true if address.blank? geo=Geokit::Geocoders::MultiGeocoder.geocode(address) if geo.success self.send("#{lat_column_name}=", geo.lat) self.send("#{lng_column_name}=", geo.lng) + elsif swallow_errors + return true else errors.add(auto_geocode_field, auto_geocode_error_message) end diff --git a/lib/geokit-rails3/geocoder_control.rb b/lib/geokit-rails3/geocoder_control.rb index 85f029e..484085f 100644 --- a/lib/geokit-rails3/geocoder_control.rb +++ b/lib/geokit-rails3/geocoder_control.rb @@ -3,16 +3,16 @@ module Geokit module GeocoderControl extend ActiveSupport::Concern - + included do if self.respond_to? :before_filter self.send :before_filter, :set_geokit_domain end end - + def set_geokit_domain Geokit::Geocoders::domain = request.domain - logger.debug("Geokit is using the domain: #{Geokit::Geocoders::domain}") + Geokit::Geocoders.logger.debug("Geokit is using the domain: #{Geokit::Geocoders::domain}") end end end \ No newline at end of file