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