X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/66b0dd135e31c58a16ecfc7dc006cd84d884a238..d6e047d7d45ea76d56dccb53cc1fe1f5b54734d5:/app/models/relation.rb diff --git a/app/models/relation.rb b/app/models/relation.rb index 9ee118f6e..5d7092908 100644 --- a/app/models/relation.rb +++ b/app/models/relation.rb @@ -105,6 +105,24 @@ class Relation < ActiveRecord::Base return el1 end + def self.find_for_nodes(ids, options = {}) + self.with_scope(:find => { :joins => "INNER JOIN current_relation_members ON current_relation_members.id = current_relations.id", :conditions => "current_relation_members.member_type = 'node' AND current_relation_members.member_id IN (#{ids.join(',')})" }) do + return self.find(:all, options) + end + end + + def self.find_for_ways(ids, options = {}) + self.with_scope(:find => { :joins => "INNER JOIN current_relation_members ON current_relation_members.id = current_relations.id", :conditions => "current_relation_members.member_type = 'way' AND current_relation_members.member_id IN (#{ids.join(',')})" }) do + return self.find(:all, options) + end + end + + def self.find_for_relations(ids, options = {}) + self.with_scope(:find => { :joins => "INNER JOIN current_relation_members ON current_relation_members.id = current_relations.id", :conditions => "current_relation_members.member_type = 'relation' AND current_relation_members.member_id IN (#{ids.join(',')})" }) do + return self.find(:all, options) + end + end + # FIXME is this really needed? def members unless @members