12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'app/controllers/formbuilder/concerns/forms_controller.rb', line 12
def update
existing_response_field_ids = []
cids = {}
(params[:fields] || []).each_with_index do |field_params, i|
response_field = field_params[:id].present? ?
@form.response_fields.find { |rf| rf.id == field_params[:id].to_i } :
@form.response_fields.build
response_field.update_attributes(transformed_field_params(field_params, i))
cids[response_field.id] = field_params[:cid]
existing_response_field_ids.push response_field.id
end
@form.response_fields.each do |response_field|
response_field.destroy unless response_field.id.in?(existing_response_field_ids)
end
@form.response_fields.reload
@form.response_fields.each do |rf|
rf.cid = cids[rf.id]
end
render json: @form.response_fields_json
end
|