Module: Para::FormBuilder::AttributesMappingsTracker

Defined in:
lib/para/form_builder/attributes_mappings_tracker.rb

Instance Method Summary collapse

Instance Method Details

#attributes_mappings_field_for(fields) ⇒ Object



41
42
43
44
45
46
# File 'lib/para/form_builder/attributes_mappings_tracker.rb', line 41

def attributes_mappings_field_for(fields)
  return unless options[:track_attribute_mappings]

  hidden_field :_attributes_mappings, value: @attributes_mappings.to_json,
               data: { :'attributes-mappings' => fields.options[:child_index] }
end

#fields_for(*args, &block) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/para/form_builder/attributes_mappings_tracker.rb', line 22

def fields_for(*args, &block)
  fields_options = args.extract_options!

  track_attribute_mappings = (
    fields_options[:track_attribute_mappings] != false &&
    options[:track_attribute_mappings]
  )

  fields_options.reverse_merge!(
    track_attribute_mappings: track_attribute_mappings
  )

  super(*args, fields_options) do |fields|
    fields_html = @template.capture { block.call(fields) }

    fields_html + fields.attributes_mappings_field_for(fields)
  end
end

#initializeObject

:nodoc:



4
5
6
7
8
# File 'lib/para/form_builder/attributes_mappings_tracker.rb', line 4

def initialize(*) #:nodoc:
  @attributes_mappings = {}

  super
end

#input(attribute_name, options = {}, &block) ⇒ Object



10
11
12
13
14
# File 'lib/para/form_builder/attributes_mappings_tracker.rb', line 10

def input(attribute_name, options = {}, &block)
  store_attribute_mapping_for(attribute_name, options, &block)

  super(attribute_name, options, &block)
end

#input_field(attribute_name, options = {}) ⇒ Object



16
17
18
19
20
# File 'lib/para/form_builder/attributes_mappings_tracker.rb', line 16

def input_field(attribute_name, options = {})
  store_attribute_mapping_for(attribute_name, options)

  super(attribute_name, options)
end