X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/c11d961f624cb610c4b8184d24e522b2c093d1ea..9b67da24c034bacb0e7cf8c907e8ae3a31423469:/app/models/way.rb diff --git a/app/models/way.rb b/app/models/way.rb index 5a26e2216..fe16e98c3 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -3,10 +3,10 @@ class Way < ActiveRecord::Base belongs_to :user - has_many :way_segments, :foreign_key => 'id' + has_many :way_segments, :foreign_key => 'id', :order => 'sequence_id' has_many :way_tags, :foreign_key => 'id' - has_many :old_ways, :foreign_key => :id + has_many :old_ways, :foreign_key => 'id', :order => 'version' set_table_name 'current_ways' @@ -148,10 +148,12 @@ class Way < ActiveRecord::Base t = Time.now self.timestamp = t self.save! - + + tags = self.tags + WayTag.delete_all(['id = ?', self.id]) - self.tags.each do |k,v| + tags.each do |k,v| tag = WayTag.new tag.k = k tag.v = v @@ -159,10 +161,12 @@ class Way < ActiveRecord::Base tag.save! end + segs = self.segs + WaySegment.delete_all(['id = ?', self.id]) - + i = 0 - self.segs.each do |n| + segs.each do |n| seg = WaySegment.new seg.id = self.id seg.segment_id = n