29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/polymorphic_as_table.rb', line 29
def is_polymorphic_as_table
ActiveRecord::Associations::AssociationProxy.send(
:include, PolymorphicAsTable::AssociationProxy)
ActiveRecord::Associations::BelongsToPolymorphicAssociation.send(
:include, PolymorphicAsTable::BelongsToAssociation)
class << self
def define_attribute_methods
if super && @@association
define_method("#{@@association}_type=") do |value|
debugger
write_attribute("#{@@association}_type", value.tableize)
end
define_method("#{@@association}_type") do
read_attribute("#{@@association}_type").classify
end
define_method("#{@@association}=") do |association|
write_attribute("#{@@association}", association)
write_attribute("#{@@association}_type", association.class.to_s.tableize)
end
end
end
def belongs_to(association_id, options={})
@@association = association_id
super
end
end
end
|