4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/fi_form/builder_extensions/active_record.rb', line 4
def fields_for(field, options={}, &block)
indent = options[:indent]
indent = true if indent.nil?
blue_print = capture_target(indent: indent) do
association = @resource.public_send(field)
record = association.klass.new(association.scope_attributes).tap(&:readonly!)
builder = sub_builder(record, &block)
instance_exec(builder, &block)
add(:blue_print, items: builder.form.items)
end
add(:fields_for, options.merge(field: field, blue_print: blue_print)).add_children(indent: indent) do
resource.public_send(field).each do |sub_resource|
builder = sub_builder(sub_resource, &block)
instance_exec(builder, &block)
@target << builder.form
end
end
end
|