class DynamicScaffold::Form::Item::Cocoon

Attributes

form[R]

Public Class Methods

new(config, type, name, options = {}) { |form| ... } click to toggle source
Calls superclass method DynamicScaffold::Form::Item::Base::new
# File lib/dynamic_scaffold/form/item/cocoon.rb, line 6
def initialize(config, type, name, options = {})
  super
  @options = options
  @form = FormBuilder.new(config)
  @form.parent_item = self
  yield(@form)
end

Public Instance Methods

add_text() click to toggle source
# File lib/dynamic_scaffold/form/item/cocoon.rb, line 23
def add_text
  @options[:add_text] || "Add #{proxy_field.label}"
end
build_children(record) click to toggle source
# File lib/dynamic_scaffold/form/item/cocoon.rb, line 27
def build_children(record)
  children = record.public_send(name).to_a
  children = @filter.call(children) if @filter.present?
  children
end
extract_parameters(permitting) click to toggle source
# File lib/dynamic_scaffold/form/item/cocoon.rb, line 14
def extract_parameters(permitting)
  permitting << { "#{@name}_attributes": [*@form.items.map(&:name).push(:_destroy)] }
end
filter(&block) click to toggle source
# File lib/dynamic_scaffold/form/item/cocoon.rb, line 18
def filter(&block)
  @filter = block
  self
end