Sha256: 9bd8e3181680a38a50b10f8cc276eec346e75547195da17f5b78acd9cb814397

Contents?: true

Size: 998 Bytes

Versions: 4

Compression:

Stored size: 998 Bytes

Contents

# frozen_string_literal: true

require 'rails_admin/config/fields/singular_association'

module RailsAdmin
  module Config
    module Fields
      module Types
        class HasOneAssociation < RailsAdmin::Config::Fields::SingularAssociation
          # Register field type for the type loader
          RailsAdmin::Config::Fields::Types.register(self)

          register_instance_option :allowed_methods do
            nested_form ? [method_name] : [name]
          end

          def associated_prepopulate_params
            {associated_model_config.abstract_model.param_key => {association.foreign_key => bindings[:object].try(:id)}}
          end

          def parse_input(params)
            return super if nested_form

            id = params.delete(method_name)
            params[name] = associated_model_config.abstract_model.get(id) if id
          end

          def selected_id
            format_key(value.try(:id)).try(:to_s)
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_admin-3.3.0 lib/rails_admin/config/fields/types/has_one_association.rb
rails_admin-3.2.1 lib/rails_admin/config/fields/types/has_one_association.rb
rails_admin-3.2.0 lib/rails_admin/config/fields/types/has_one_association.rb
rails_admin-3.2.0.rc lib/rails_admin/config/fields/types/has_one_association.rb