X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/dbe165bbb3d6eda37d9579f1ac767599f9055607..036519a4485948fe06fad43e30bbbb3e5df7bb6f:/app/models/way.rb diff --git a/app/models/way.rb b/app/models/way.rb index f0b35a88a..6d49735f1 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -83,16 +83,6 @@ class Way < ActiveRecord::Base way end - # Find a way given it's ID, and in a single SQL call also grab its nodes - # - - # You can't pull in all the tags too unless we put a sequence_id on the way_tags table and have a multipart key - def self.find_eager(id) - Way.find(id, :include => { :way_nodes => :node }) - # If waytag had a multipart key that was real, you could do this: - # Way.find(id, :include => [:way_tags, {:way_nodes => :node}]) - end - # Find a way given it's ID, and in a single SQL call also grab its nodes and tags def to_xml doc = OSM::API.new.get_xml_doc @@ -209,7 +199,9 @@ class Way < ActiveRecord::Base new_nds = (nds - old_nodes).sort.uniq unless new_nds.empty? - db_nds = Node.where(:id => new_nds, :visible => true) + # NOTE: nodes are locked here to ensure they can't be deleted before + # the current transaction commits. + db_nds = Node.where(:id => new_nds, :visible => true).lock("for share") if db_nds.length < new_nds.length missing = new_nds - db_nds.collect(&:id) @@ -242,11 +234,6 @@ class Way < ActiveRecord::Base end end - # Temporary method to match interface to nodes - def tags_as_hash - tags - end - ## # if any referenced nodes are placeholder IDs (i.e: are negative) then # this calling this method will fix them using the map from placeholders