7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/rails_admin/adapters/mongoid/object_extension.rb', line 7
def self.extended(object)
object.associations.each do |name, association|
association = Association.new(association, object.class)
case association.macro
when :has_many
unless association.autosave?
object.singleton_class.after_create do
send(name).each(&:save)
end
end
when :has_one
unless association.autosave?
object.singleton_class.after_create do
send(name)&.save
end
end
object.instance_eval <<-RUBY, __FILE__, __LINE__ + 1
def #{name}_id=(item_id)
self.#{name} = (#{association.klass}.find(item_id) rescue nil)
end
RUBY
end
end
end
|