railsadminteam/rails_admin

View on GitHub
lib/rails_admin/adapters/mongoid/object_extension.rb

Summary

Maintainability
A
1 hr
Test Coverage
# frozen_string_literal: true

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
            end
          end
        end
      end
    end
  end
end