4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/polymorpheus/interface/rails3/has_many_as_polymorph.rb', line 4
def has_many_as_polymorph(association, options = {})
options.symbolize_keys!
fkey = name.foreign_key
class_name = options[:class_name] || association.to_s.classify
options[:conditions] = proc do
keys = class_name.constantize
.const_get('POLYMORPHEUS_ASSOCIATIONS')
.map(&:foreign_key)
keys.delete(fkey)
nil_columns = keys.reduce({}) { |hash, key| hash.merge!(key => nil) }
if self.is_a?(ActiveRecord::Associations::JoinDependency::JoinAssociation)
{ aliased_table_name => nil_columns }
else
{ association => nil_columns }
end
end
has_many association, options
end
|