From 043fca27864b3916e627ded0521f3d3910675e3f Mon Sep 17 00:00:00 2001 From: Niklas van Schrick Date: Wed, 18 Feb 2026 20:19:15 +0100 Subject: [PATCH] Fix problems with flow updates - FlowSetting is not getting saved - `function_value` and `reference_value` are not unset after destroy - `function_value` destroy in NodeParameter violated foreign keys --- app/models/node_parameter.rb | 1 - app/services/namespaces/projects/flows/update_service.rb | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/models/node_parameter.rb b/app/models/node_parameter.rb index 59e10497..ad0dcbb1 100644 --- a/app/models/node_parameter.rb +++ b/app/models/node_parameter.rb @@ -40,6 +40,5 @@ def only_one_value_present def destroy_value_objects reference_value.destroy if reference_value.present? - function_value.destroy if function_value.present? end end diff --git a/app/services/namespaces/projects/flows/update_service.rb b/app/services/namespaces/projects/flows/update_service.rb index c69003b1..50e5631a 100644 --- a/app/services/namespaces/projects/flows/update_service.rb +++ b/app/services/namespaces/projects/flows/update_service.rb @@ -60,7 +60,7 @@ def update_settings(t) flow_setting = flow.flow_settings.find_or_initialize_by(flow_setting_id: setting.flow_setting_identifier) flow_setting.object = setting.value - next if flow_setting.valid? + next if flow_setting.save t.rollback_and_return! ServiceResponse.error( message: 'Invalid flow settings', @@ -198,6 +198,7 @@ def update_node_parameters(t, current_node, current_node_input, all_nodes) db_parameters[index].function_value = node[:node] else db_parameters[index].function_value&.destroy + db_parameters[index].function_value = nil end if parameter.value.reference_value.present? @@ -228,6 +229,7 @@ def update_node_parameters(t, current_node, current_node_input, all_nodes) ) else db_parameters[index].reference_value&.destroy + db_parameters[index].reference_value = nil end next if db_parameters[index].valid?