vrfs-774: fixed infinite loop issue setting lat/lng

This commit is contained in:
Jonathan Kolyer 2013-11-03 06:28:52 -06:00
parent b48a298af5
commit f164a750c3
1 changed files with 15 additions and 7 deletions

View File

@ -978,7 +978,9 @@ module JamRuby
end
def check_lat_lng
update_lat_lng if (city_changed? || state_changed? || country_changed?) && !lat_changed?
if (city_changed? || state_changed? || country_changed?) && !lat_changed? && !lng_changed?
update_lat_lng
end
end
def update_lat_lng(ip_addy=nil)
@ -988,17 +990,23 @@ module JamRuby
query[:region] = self.state unless self.state.blank?
query[:country] = self.country unless self.country.blank?
if geo = MaxMindGeo.where(query).limit(1).first
self.update_attributes({ :lat => geo.lat, :lng => geo.lng })
yn = true
if geo.lat && geo.lng && (self.lat != geo.lat || self.lng != geo.lng)
self.update_attributes({ :lat => geo.lat, :lng => geo.lng })
yn = true
end
end
elsif ip_addy
if geo = MaxMindGeo.ip_lookup(ip_addy)
self.update_attributes({ :lat => geo.lat, :lng => geo.lng })
yn = true
if self.lat != geo.lat || self.lng != geo.lng
self.update_attributes({ :lat => geo.lat, :lng => geo.lng })
yn = true
end
end
else
self.update_attributes({ :lat => nil, :lng => nil })
yn = true
if self.lat || self.lng
self.update_attributes({ :lat => nil, :lng => nil })
yn = true
end
end
yn
end