diff --git a/lib/geocoder/stores/active_record.rb b/lib/geocoder/stores/active_record.rb index 2d39180b3652b5ca52225cf0baaac6de97ebb0c0..96b11e0701a2c3a3873e0930b295e1822303fc14 100644 --- a/lib/geocoder/stores/active_record.rb +++ b/lib/geocoder/stores/active_record.rb @@ -148,7 +148,7 @@ module Geocoder::Store distance = full_distance_from_sql(latitude, longitude, options) conditions = ["#{distance} <= ?", radius] default_near_scope_options(latitude, longitude, radius, options).merge( - :select => "#{options[:select] || full_column_name("*")}, " + + :select => select_addon(options) + "#{distance} AS distance" + (bearing ? ", #{bearing} AS bearing" : ""), :conditions => add_exclude_condition(conditions, options[:exclude]) @@ -222,13 +222,20 @@ module Geocoder::Store [b[0], b[2], b[1], b[3] ] default_near_scope_options(latitude, longitude, radius, options).merge( - :select => "#{options[:select] || full_column_name("*")}, " + + :select => select_addon(options) + "#{distance} AS distance" + (bearing ? ", #{bearing} AS bearing" : ""), :conditions => add_exclude_condition(conditions, options[:exclude]) ) end + ## + # Select string to add + # + def select_addon(options) + options[:select] == :ignore ? "" : "#{options[:select] || full_column_name("*")}, " + end + ## # Options used for any near-like scope. #