Module: DynamicFieldsForHelper
- Defined in:
- app/helpers/dynamic_fields_for_helper.rb
Instance Method Summary collapse
- #link_to_add_fields(form, association, options = {}, &block) ⇒ Object
- #link_to_delete_fields(fields, options = {}, &block) ⇒ Object
Instance Method Details
#link_to_add_fields(form, association, options = {}, &block) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/helpers/dynamic_fields_for_helper.rb', line 4 def link_to_add_fields(form, association, = {}, &block) partial = [:partial] || nil name = [:name] || nil css_classes = [:class] || nil target = [:target] || nil new_object = form.object.send(association).klass.new id = new_object.object_id fields = form.fields_for(association, new_object, child_index: id) do |builder| if partial render("#{form.object.class.name.underscore.pluralize}/#{partial}", fields: builder) else render("#{form.object.class.name.underscore.pluralize}/#{association.to_s.singularize}_fields", fields: builder) end end css_classes = css_classes(DynamicFieldsForRails.add_css_classes, css_classes) if block_given? link_to('#', class: css_classes, data: { id: id, fields: fields.delete("\n"), target: target }, &block) else link_to(name, '#', class: css_classes, data: { id: id, fields: fields.delete("\n"), target: target }) end end |
#link_to_delete_fields(fields, options = {}, &block) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/helpers/dynamic_fields_for_helper.rb', line 29 def link_to_delete_fields(fields, = {}, &block) name = [:name] || nil css_classes = [:class] || nil link = [] link << fields.hidden_field(:_destroy) unless fields.object.new_record? css_classes = css_classes(DynamicFieldsForRails.delete_css_classes, css_classes) link << if block_given? link_to('#', class: css_classes, title: name, &block) else link_to(name, '#', class: css_classes) end # rubocop:disable Rails/OutputSafety link.join('').html_safe # rubocop:enable Rails/OutputSafety end |