vrfs-774: fixed infinite loop issue setting lat/lng
This commit is contained in:
parent
b48a298af5
commit
f164a750c3
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue