X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/0dba53c0232385f0fd080266f9a5ce3665426293..c38a50fc5f43a185dda39fd1aa235a2bda8ad83b:/app/models/relation_member.rb?ds=sidebyside diff --git a/app/models/relation_member.rb b/app/models/relation_member.rb index 82cb4cc8d..3e5cdfca2 100644 --- a/app/models/relation_member.rb +++ b/app/models/relation_member.rb @@ -1,27 +1,26 @@ +# == Schema Information +# +# Table name: current_relation_members +# +# relation_id :integer not null, primary key +# member_type :enum not null +# member_id :integer not null +# member_role :string not null +# sequence_id :integer default(0), not null, primary key +# +# Indexes +# +# current_relation_members_member_idx (member_type,member_id) +# +# Foreign Keys +# +# current_relation_members_id_fkey (relation_id => current_relations.id) +# + class RelationMember < ActiveRecord::Base - set_table_name 'current_relation_members' - - set_primary_keys :id, :sequence_id + self.table_name = "current_relation_members" + self.primary_keys = "relation_id", "sequence_id" + belongs_to :relation, :foreign_key => :relation_id belongs_to :member, :polymorphic => true - belongs_to :relation, :foreign_key => :id - - after_find :set_class_from_type - after_initialize :set_class_from_type - before_save :set_type_from_class - - def member_type=(type) - self[:member_type] = type - self[:member_class] = type.capitalize - end - -private - - def set_class_from_type - self[:member_class] = self.member_type.classify unless self.member_type.nil? - end - - def set_type_from_class - self.member_type = self[:member_class].classify - end end