Sha256: d9dcaa91ae0ec9d319eaa70a4643ad2ce773be3250d4e54f3525b1ec50ca333d

Contents?: true

Size: 907 Bytes

Versions: 3

Compression:

Stored size: 907 Bytes

Contents

require 'rails_admin/adapters/active_record/abstract_object'
module RailsAdmin
  module Adapters
    module Mongoid
      class AbstractObject < RailsAdmin::Adapters::ActiveRecord::AbstractObject
        def initialize(object)
          super
          object.associations.each do |name, association|
            if association.macro == :references_many
              instance_eval <<-RUBY, __FILE__, __LINE__ + 1
                def #{name.to_s.singularize}_ids
                  #{name}.map{|item| item.id }
                end

                def #{name.to_s.singularize}_ids=(items)
                  self.#{name} = items.
                    map{|item_id| self.#{name}.klass.find(item_id) rescue nil }.
                    compact
                end
RUBY
            end
          end
        end

        def destroy
          object.destroy
          object
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
obitum-rails_admin-0.0.5 lib/rails_admin/adapters/mongoid/abstract_object.rb
drewda_rails_admin-0.0.1 lib/rails_admin/adapters/mongoid/abstract_object.rb
obitum-rails_admin-0.0.4 lib/rails_admin/adapters/mongoid/abstract_object.rb