Module: Redde::FormHelper

Defined in:
app/helpers/redde/form_helper.rb

Constant Summary collapse

FIELD_ERROR_PROC =

Override the default ActiveRecordHelper behaviour of wrapping the input. This gets taken care of semantically by adding an error class to the wrapper tag containing the input.

proc do |html_tag, instance_tag|
  html_tag
end

Instance Method Summary collapse

Instance Method Details

#redde_fields_for(record_name, record_object = nil, options = {}, &block) ⇒ Object



26
27
28
29
30
31
32
33
# File 'app/helpers/redde/form_helper.rb', line 26

def redde_fields_for(record_name, record_object = nil, options = {}, &block)
  options, record_object = record_object, nil if record_object.is_a?(Hash) && record_object.extractable_options?
  options[:builder] ||= ReddeFormBuilder

  with_clean_form_field_error_proc do
    fields_for(record_name, record_object, options, &block)
  end
end

#redde_form_for(object, options = {}, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/helpers/redde/form_helper.rb', line 10

def redde_form_for(object, options = {}, &block)
  options = make_options(options)
  options[:builder] ||= ReddeFormBuilder
  options[:html] = { 'data-redde' => { objectName: (object.kind_of?(Array) ? object.last : object).class.model_name.param_key }.to_json }

  options[:redde] = {} unless options.key?(:redde)
  options[:redde][:submits] = true unless options[:redde].key?(:submits)

  with_clean_form_field_error_proc do
    form_for(object, options) do |f|
      concat f.error_messages
      concat (:table, capture(f, &block).concat(if options[:redde][:submits] then f.redde_submits end), class: 'redde-form__tbl')
    end
  end
end