X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/5652e9f6b95c1e44db597c0136a985aef5e28ad5..387d130e87b79cb428f7554c1a233de5d0627ae9:/app/models/old_way.rb diff --git a/app/models/old_way.rb b/app/models/old_way.rb index 9acf8665d..fcff84ede 100644 --- a/app/models/old_way.rb +++ b/app/models/old_way.rb @@ -31,13 +31,13 @@ class OldWay < ApplicationRecord include Redactable belongs_to :changeset - belongs_to :redaction - belongs_to :current_way, :class_name => "Way", :foreign_key => "way_id" + belongs_to :redaction, :optional => true + belongs_to :current_way, :class_name => "Way", :foreign_key => "way_id", :inverse_of => :old_ways - has_many :old_nodes, :class_name => "OldWayNode", :foreign_key => [:way_id, :version] - has_many :old_tags, :class_name => "OldWayTag", :foreign_key => [:way_id, :version] + has_many :old_nodes, :class_name => "OldWayNode", :foreign_key => [:way_id, :version], :inverse_of => :old_way + has_many :old_tags, :class_name => "OldWayTag", :foreign_key => [:way_id, :version], :inverse_of => :old_way - validates :changeset, :presence => true, :associated => true + validates :changeset, :associated => true validates :timestamp, :presence => true validates :visible, :inclusion => [true, false] @@ -80,7 +80,7 @@ class OldWay < ApplicationRecord end def tags - @tags ||= old_tags.collect { |t| [t.k, t.v] }.to_h + @tags ||= old_tags.to_h { |t| [t.k, t.v] } end attr_writer :nds, :tags @@ -97,7 +97,7 @@ class OldWay < ApplicationRecord # check whether this element is the latest version - that is, # has the same version as its "current" counterpart. - def is_latest_version? + def latest_version? current_way.version == version end end