Class: Interview::NestedForm
- Includes:
- HasControls
- Defined in:
- lib/interview/nested_form.rb
Instance Attribute Summary collapse
-
#align ⇒ Object
todo: align einbauen.
-
#form_builder ⇒ Object
readonly
Returns the value of attribute form_builder.
-
#object ⇒ Object
readonly
Returns the value of attribute object.
-
#polymorphic ⇒ Object
todo: align einbauen.
Attributes included from HasControls
Attributes inherited from Control
Instance Method Summary collapse
- #render ⇒ Object
- #render_nested_form(form_builder) ⇒ Object
- #render_polymorphic_nested_form(form_builder) ⇒ Object
Methods included from HasControls
#add_control, #add_controls, included, #initialize, #siblings
Methods inherited from Control
#ancestors, build, definition, #find_attribute, #find_attribute!, inherited, #initialize, #set_attributes, #set_defaults
Instance Attribute Details
#align ⇒ Object
todo: align einbauen
5 6 7 |
# File 'lib/interview/nested_form.rb', line 5 def align @align end |
#form_builder ⇒ Object (readonly)
Returns the value of attribute form_builder.
6 7 8 |
# File 'lib/interview/nested_form.rb', line 6 def form_builder @form_builder end |
#object ⇒ Object (readonly)
Returns the value of attribute object.
6 7 8 |
# File 'lib/interview/nested_form.rb', line 6 def object @object end |
#polymorphic ⇒ Object
todo: align einbauen
5 6 7 |
# File 'lib/interview/nested_form.rb', line 5 def polymorphic @polymorphic end |
Instance Method Details
#render ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/interview/nested_form.rb', line 8 def render assoc_form_builder = find_attribute! :form_builder assoc_method = find_attribute! :assoc_method objects = find_attribute! :objects html = Builder::XmlMarkup.new html.div class: 'nested_forms' do html << assoc_form_builder.fields_for(assoc_method.to_sym, objects) do |form_builder| if @polymorphic render_polymorphic_nested_form(form_builder) else render_nested_form(form_builder) end end end return html.target! end |
#render_nested_form(form_builder) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/interview/nested_form.rb', line 26 def render_nested_form(form_builder) @form_builder = form_builder @object = form_builder.object html = Builder::XmlMarkup.new html.div class: 'nested_form collapse in' do @controls.each do |control| html << control.render end html << form_builder.hidden_field(:id) html << form_builder.hidden_field(:_destroy, class: 'nested_form_destroy') end html.target!.html_safe end |
#render_polymorphic_nested_form(form_builder) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/interview/nested_form.rb', line 40 def render_polymorphic_nested_form(form_builder) object = form_builder.object if klass = "#{object.class.name}NestedForm".safe_constantize nested_form = klass.new(parent: self) return nested_form.render_nested_form(form_builder) else return self.render_nested_form(form_builder) end end |