X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/6d44c78407ea9a553be030f3f7c49b48d616878b..cfbdd3f7e1c688e2c875ded9fd847fcc1c3a4caf:/app/models/relation.rb diff --git a/app/models/relation.rb b/app/models/relation.rb index f74a149ec..a5d463ffb 100644 --- a/app/models/relation.rb +++ b/app/models/relation.rb @@ -141,46 +141,40 @@ class Relation < ActiveRecord::Base @tags[k] = v end - def save_with_history - begin - Relation.transaction do - t = Time.now - self.timestamp = t - self.save! - - tags = self.tags - - RelationTag.delete_all(['id = ?', self.id]) - - tags.each do |k,v| - tag = RelationTag.new - tag.k = k - tag.v = v - tag.id = self.id - tag.save! - end - - members = self.members + def save_with_history! + Relation.transaction do + t = Time.now + self.timestamp = t + self.save! + + tags = self.tags + + RelationTag.delete_all(['id = ?', self.id]) + + tags.each do |k,v| + tag = RelationTag.new + tag.k = k + tag.v = v + tag.id = self.id + tag.save! + end - RelationMember.delete_all(['id = ?', self.id]) + members = self.members - members.each do |n| - mem = RelationMember.new - mem.id = self.id - mem.member_type = n[0]; - mem.member_id = n[1]; - mem.member_role = n[2]; - mem.save! - end + RelationMember.delete_all(['id = ?', self.id]) - old_relation = OldRelation.from_relation(self) - old_relation.timestamp = t - old_relation.save_with_dependencies! + members.each do |n| + mem = RelationMember.new + mem.id = self.id + mem.member_type = n[0]; + mem.member_id = n[1]; + mem.member_role = n[2]; + mem.save! end - return true - rescue Exception => ex - return nil + old_relation = OldRelation.from_relation(self) + old_relation.timestamp = t + old_relation.save_with_dependencies! end end