Module: Oxymoron::ActionViewExtensions::FormHelper

Defined in:
lib/oxymoron/extensions/form_helper.rb

Instance Method Summary collapse

Instance Method Details

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



64
65
66
67
# File 'lib/oxymoron/extensions/form_helper.rb', line 64

def oxymoron_fields_for(record_name, record_object = nil, options = {}, &block)
  options[:builder] ||= Config.form_builder
  fields_for record_name, record_object, options, &block
end

#oxymoron_form_for(record, options = {}, &block) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/oxymoron/extensions/form_helper.rb', line 43

def oxymoron_form_for(record, options = {}, &block)
  options[:builder] ||= Config.form_builder

  case record
  when String, Symbol
    object_name = record
  else
    object      = record.is_a?(Array) ? record.last : record
    raise ArgumentError, "First argument in form cannot contain nil or be empty" unless object
    object_name = options[:as] || model_name_from_record_or_class(object).param_key
  end

  html_options = options[:html] ||= {}
  html_options[:name] ||= object_name
  prefix = html_options["ng-submit-prefix"] || options[:prefix] || 'ctrl'
  html_options["ng-submit"] ||= "formQuery = #{prefix}.save({form_name: '#{object_name}', id: #{prefix}.#{object_name}.id, #{object_name}: #{prefix}.#{object_name}}); $event.preventDefault();"

  options[:html].merge!(html_options)
  form_for record, options, &block
end