Module: DefaultForm::ActiveRecord::Extend

Defined in:
lib/default_form/active_record/extend.rb

Instance Method Summary collapse

Instance Method Details

#input_attributes_by_modelObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/default_form/active_record/extend.rb', line 4

def input_attributes_by_model
  cols = {}

  attributes_by_model.each do |name, column|
    r = {}
    r.merge! column.slice(:type, :subtype, :outer)
    r.merge! input_type: column[:raw_type]

    if r[:type].respond_to? :input_type
      r.merge! input_type: r[:type].input_type
    end

    case r[:type].class.name
    when 'ActiveRecord::Enum::EnumType'
      r.merge! input_type: :enum
      r.merge! mapping: r[:type].send(:mapping)
    end

    if inheritance_column.to_s == name
      r.merge! input_type: :enum
    end
    r.merge! DefaultForm.config.mapping.fetch(r[:input_type], {})

    cols.merge! name => r
  end

  cols
end