Module: DynamicFieldsForHelper

Defined in:
app/helpers/dynamic_fields_for_helper.rb

Instance Method Summary collapse

Instance Method Details



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, options = {}, &block)
  partial = options[:partial] || nil
  name = options[:name] || nil
  css_classes = options[:class] || nil
  target = options[: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


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, options = {}, &block)
  name = options[:name] || nil
  css_classes = options[: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