Sha256: 2b46a6058a0260b9c3110dcf7ce5dd102b54d989c3646d96144d5869d164ed94

Contents?: true

Size: 980 Bytes

Versions: 7

Compression:

Stored size: 980 Bytes

Contents

module RailsAdmin
  module Adapters
    module Mongoid
      module ObjectExtension
        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
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rails_admin-3.0.0 lib/rails_admin/adapters/mongoid/object_extension.rb
rails_admin-3.0.0.rc4 lib/rails_admin/adapters/mongoid/object_extension.rb
rails_admin-3.0.0.rc3 lib/rails_admin/adapters/mongoid/object_extension.rb
rails_admin-3.0.0.rc2 lib/rails_admin/adapters/mongoid/object_extension.rb
rails_admin-3.0.0.rc lib/rails_admin/adapters/mongoid/object_extension.rb
rails_admin-3.0.0.beta2 lib/rails_admin/adapters/mongoid/object_extension.rb
rails_admin-3.0.0.beta lib/rails_admin/adapters/mongoid/object_extension.rb