From e5197107264e19fecead9615308f2a856037cc49 Mon Sep 17 00:00:00 2001 From: oscar-richardson-softwire Date: Thu, 5 Feb 2026 15:20:07 +0000 Subject: [PATCH] Fix not equals logic --- app/models/form.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/models/form.rb b/app/models/form.rb index e86596288..8370b7dbb 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -323,7 +323,12 @@ class Form if value.is_a?(Hash) && value.key?("operator") operator = value["operator"] operand = value["operand"] - log[question]&.send(operator, operand) + + if operator == "!=" # This branch is needed as `nil` does not behave as expected with the default logic (`nil&.send("!=", operand)` => `nil` i.e., `false`). + log[question] != operand + else + log[question]&.send(operator, operand) + end else parts = question.split(".") log_value = send_chain(parts, log)