class RelationMember < ActiveRecord::Base
- set_table_name 'current_relation_members'
-
- belongs_to :member, :polymorphic => true, :foreign_type => :member_class
- belongs_to :relation, :foreign_key => :id
+ set_table_name 'current_relation_members'
+ set_primary_keys :relation_id, :sequence_id
- def after_find
- self[:member_class] = self.member_type.capitalize
- end
+ belongs_to :relation
+ belongs_to :member, :polymorphic => true
- def after_initialize
- self[:member_class] = self.member_type.capitalize
- end
-
- def before_save
- self.member_type = self[:member_class].downcase
- end
+ 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