Module: DynamicFieldsForHelper

Defined in:
app/helpers/dynamic_fields_for_helper.rb

Instance Method Summary collapse

Instance Method Details



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/helpers/dynamic_fields_for_helper.rb', line 3

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.downcase.pluralize}/#{partial}", fields: builder)
    else
      render("#{form.object.class.name.downcase.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


26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/helpers/dynamic_fields_for_helper.rb', line 26

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
  link.join('').html_safe
end