Sha256: ee0f61f6a1126b1dbae44f70d10d4f74afaf75cfff0768ebc83d90494a945b5c

Contents?: true

Size: 843 Bytes

Versions: 5

Compression:

Stored size: 843 Bytes

Contents

module RailsAdmin
  module Adapters
    module ActiveRecord
      module ObjectExtension
        def self.extended(object)
          object.class.reflect_on_all_associations.each do |association|
            association = Association.new(association, object.class)
            case association.type
            when :has_one
              object.instance_eval <<-RUBY, __FILE__, __LINE__ + 1
                def #{association.name}_id
                  self.#{association.name}&.id
                end

                def #{association.name}_id=(item_id)
                  self.#{association.name} = (#{association.klass}.find(item_id) rescue nil)
                end
              RUBY
            end
          end
        end

        def assign_attributes(attributes)
          super if attributes
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rails_admin-3.0.0 lib/rails_admin/adapters/active_record/object_extension.rb
rails_admin-3.0.0.rc4 lib/rails_admin/adapters/active_record/object_extension.rb
rails_admin-3.0.0.rc3 lib/rails_admin/adapters/active_record/object_extension.rb
rails_admin-3.0.0.rc2 lib/rails_admin/adapters/active_record/object_extension.rb
rails_admin-3.0.0.rc lib/rails_admin/adapters/active_record/object_extension.rb