X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/423f5ffbc27d8e1ad2bef7b2abd3aecc227544c0..0dba53c0232385f0fd080266f9a5ce3665426293:/app/models/relation_member.rb?ds=sidebyside diff --git a/app/models/relation_member.rb b/app/models/relation_member.rb index fbaf89daf..82cb4cc8d 100644 --- a/app/models/relation_member.rb +++ b/app/models/relation_member.rb @@ -2,23 +2,26 @@ class RelationMember < ActiveRecord::Base set_table_name 'current_relation_members' set_primary_keys :id, :sequence_id + belongs_to :member, :polymorphic => true belongs_to :relation, :foreign_key => :id - def after_find - self[:member_class] = self.member_type.classify + 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 - def after_initialize +private + + def set_class_from_type self[:member_class] = self.member_type.classify unless self.member_type.nil? end - def before_save + def set_type_from_class self.member_type = self[:member_class].classify end - - def member_type=(type) - self[:member_type] = type - self[:member_class] = type.capitalize - end end