Module: SimpleFormStrongParameters::FormHelper

Defined in:
lib/form_helper.rb

Instance Method Summary collapse

Instance Method Details

#simple_form_strong_parameters_for(*args) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/form_helper.rb', line 2

def simple_form_strong_parameters_for(*args)
  object = args.first

  # If given as '= simple_form_for [:admin, user] do |f|'.
  if object.is_a? Array
    object = object.last
  end

  sfsp = SimpleFormStrongParameters::FormProxy.new(object: object, first: true)
  storage = session[:simple_form_strong_parameters_storage] ||= {}

  simple_form_for *args do |f|
    url = f.options[:url]

    url_storage = storage[url] ||= {}
    ns_storage = url_storage[sfsp.namespace] ||= {}

    sfsp.simple_form = f
    sfsp.session_var = ns_storage

    yield sfsp
  end
end