X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/5a8c4faf3ebf4e80bd41b2f281bc3c23309739d5..14bc538681ca1e6b54dc2da67718e67ea6e1ec04:/app/models/relation.rb diff --git a/app/models/relation.rb b/app/models/relation.rb index 908651b64..ce19f7b98 100644 --- a/app/models/relation.rb +++ b/app/models/relation.rb @@ -2,7 +2,8 @@ class Relation < ActiveRecord::Base require 'xml/libxml' include ConsistencyValidations - + include NotRedactable + self.table_name = "current_relations" belongs_to :changeset @@ -66,12 +67,22 @@ class Relation < ActiveRecord::Base # and manually set to false before the actual delete. relation.visible = true + # Start with no tags + relation.tags = Hash.new + + # Add in any tags from the XML pt.find('tag').each do |tag| raise OSM::APIBadXMLError.new("relation", pt, "tag is missing key") if tag['k'].nil? raise OSM::APIBadXMLError.new("relation", pt, "tag is missing value") if tag['v'].nil? relation.add_tag_keyval(tag['k'], tag['v']) end + # need to initialise the relation members array explicitly, as if this + # isn't done for a new relation then @members attribute will be nil, + # and the members will be loaded from the database instead of being + # empty, as intended. + relation.members = Array.new + pt.find('member').each do |member| #member_type = logger.debug "each member"