Skip to content

Instantly share code, notes, and snippets.

@dkln
Created January 21, 2011 14:45
Show Gist options
  • Save dkln/789761 to your computer and use it in GitHub Desktop.
Save dkln/789761 to your computer and use it in GitHub Desktop.
Easy adding/removing in nested forms for simple_form
module FormsHelper
def nested_fields_for(form, association, &block)
field_html = form.simple_fields_for(association, &block)
new_html = form.simple_fields_for(association, new_association_object(form, association), :child_index => 'new', &block)
(field_html + nav_for_new_record(new_html)).html_safe
end
def nav_for_new_record(html_for_add)
"<nav><ol><li>#{menu_item(:form, :add, '#', :"data-content" => "#{html_for_add}", :class => 'add_fields')}</li></ol></nav>".html_safe
end
def nav_for_existing_record(form)
"<nav><ol><li>#{menu_item(:form, :destroy, '#', :class => 'destroy_fields', :"data-id" => form.object_name)}</li></ol></nav>".html_safe
end
def pluralized_association_name(model, association)
model.class.reflect_on_association(association).klass.model_name.human(:count => 2)
end
def new_association_object(form, association)
form.object.class.reflect_on_association(association).klass.new
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment