55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/rea/active_record_ext.rb', line 55
def member classification, *args
((::Rea.metadata[:member_class_names] ||= []) << self.name).uniq!
grouping
$options = {:multiple=>false,
:category_class_name=>::Rea::Category.name,
:categories_entity_class_name=>::Rea::CategoriesEntity.name
}.merge(args.)
members[classification] = $options.dup
if (args.size > 0) && (categories = args[0]).is_a?(Array)
members[classification][:categories] = categories
end
if $options[:multiple]
has_many :categories_entities, :as=>:entity, :class_name=>$options[:categories_entity_class_name]
has_many classification, :through=>:categories_entities,
:include=>:classification,
:class_name=>$options[:category_class_name],
:source=>:category,
:conditions=>"rea_classifications.type_name = '#{self.name}' and rea_classifications.name = '#{classification.to_s.singularize}'"
else
belongs_to classification, :class_name=>$options[:category_class_name]
end
end
|