Method: ARFormWidget#output

Defined in:
lib/cuca/stdlib/arform.rb

#output(form_name, model, options = {}) ⇒ Object

valid options

  • :disabled_on_create => [‘field_name_1’, ‘field_name_2’, ..]

    switch off fields on new records
    
  • :diabled_on_update => [‘field_name_1’, ‘field_name_2’, ..]

    switch off fields on existing records
    
  • :save_attribs => [‘attr1’, ‘attr2’]

    allow to call a setter even if it's not a db column
    
  • .. options from FormWidgets …



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/cuca/stdlib/arform.rb', line 34

def output(form_name, model, options = {})
  @model = model
  @disabled_on_update = options[:disabled_on_update] || []
  @disabled_on_create = options[:disabled_on_create] || []
  @hidden_on_update     = options[:hidden_on_update] || []
  @hidden_on_create     = options[:hidden_on_create] || []
  @save_attribs         = options[:save_attribs]     || []


  setup if self.respond_to?(:setup)   # you might want to use a method for setup


  options[:default_values] = model.attributes.merge(options[:default_values] || {})
  @save_attribs.each do |sa|
     options[:default_values][sa] = model.send(sa.intern) if model.respond_to?(sa.intern)
  end

  super(form_name, options)
end