- @bug = MapBug.create_bug(lat, lon)
-
-
- #TODO: move this into a helper function
- url = "http://nominatim.openstreetmap.org/reverse?lat=" + lat.to_s + "&lon=" + lon.to_s + "&zoom=16"
- response = REXML::Document.new(Net::HTTP.get(URI.parse(url)))
-
- if result = response.get_text("reversegeocode/result")
- @bug.nearby_place = result.to_s
- else
- @bug.nearby_place = "unknown"
- end
-
- @bug.save;
- add_comment(@bug, comment, name);
+ #Include in a transaction to ensure that there is always a map_bug_comment for every map_bug
+ MapBug.transaction do
+ @bug = MapBug.create_bug(lat, lon)
+
+
+ #TODO: move this into a helper function
+ begin
+ url = "http://nominatim.openstreetmap.org/reverse?lat=" + lat.to_s + "&lon=" + lon.to_s + "&zoom=16"
+ response = REXML::Document.new(Net::HTTP.get(URI.parse(url)))
+
+ if result = response.get_text("reversegeocode/result")
+ @bug.nearby_place = result.to_s
+ else
+ @bug.nearby_place = "unknown"
+ end
+ rescue Exception => err
+ @bug.nearby_place = "unknown"
+ end
+
+ @bug.save;
+ add_comment(@bug, comment, name);
+ end