dont eager load tags (false primary key fucks all sorts of things up) and move delete way logic to model so that amf_controller can use it (plan is to do this with all of the methods. sigh.)
This commit is contained in:
parent
2ce8177333
commit
bbd769304c
5 changed files with 67 additions and 39 deletions
|
@ -52,7 +52,9 @@ class Way < ActiveRecord::Base
|
|||
|
||||
# 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 = Way.find(id, :include => [:way_tags, {:way_nodes => :node}])
|
||||
way = Way.find(id, :include => {:way_nodes => :node})
|
||||
#If waytag had a multipart key that was real, you could do this:
|
||||
#way = 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
|
||||
|
@ -204,4 +206,22 @@ class Way < ActiveRecord::Base
|
|||
return true
|
||||
end
|
||||
|
||||
# Delete the way and it's relations, but don't really delete it - set its visibility to false and update the history etc to maintain wiki-like functionality.
|
||||
def delete_with_relations_and_history(user)
|
||||
if self.visible
|
||||
# omg FIXME
|
||||
if RelationMember.find(:first, :joins => "INNER JOIN current_relations ON current_relations.id=current_relation_members.id",
|
||||
:conditions => [ "visible = 1 AND member_type='way' and member_id=?", self.id])
|
||||
raise OSM::APIPreconditionFailedError
|
||||
else
|
||||
self.user_id = user.id
|
||||
self.tags = []
|
||||
self.nds = []
|
||||
self.visible = false
|
||||
self.save_with_history!
|
||||
end
|
||||
else
|
||||
raise OSM::APIAlreadyDeletedError
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue