diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index cc9ac6fac..6c40107dc 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -25,9 +25,9 @@ class SchemesController < ApplicationController end def create - @scheme = Scheme.new(scheme_params) + @scheme = Scheme.new(scheme_params.except(:support_services_provider_before_type_cast)) - validation_errors scheme_params + validation_errors scheme_params.except(:support_services_provider) if @scheme.errors.empty? && @scheme.save if scheme_params[:support_services_provider].zero? @@ -100,11 +100,7 @@ class SchemesController < ApplicationController def validation_errors(scheme_params) scheme_params.each_key do |key| - if scheme_params[key] == "support_services_provider" - @scheme.errors.add("support_services_provider_before_type_cast") if scheme_params[key].to_s.empty? - else - @scheme.errors.add(key.to_sym) if scheme_params[key].to_s.empty? - end + @scheme.errors.add(key.to_sym) if scheme_params[key].to_s.empty? end end @@ -169,12 +165,10 @@ class SchemesController < ApplicationController :support_services_provider_before_type_cast, :intended_stay).merge(support_services_provider: params[:scheme][:support_services_provider_before_type_cast]) - required_params.delete(:support_services_provider_before_type_cast) - full_params = required_params[:support_services_provider] == "0" && required_params[:owning_organisation_id].present? ? required_params.merge(managing_organisation_id: required_params[:owning_organisation_id]) : required_params full_params[:sensitive] = full_params[:sensitive].to_i if full_params[:sensitive] - full_params[:support_services_provider] = full_params[:support_services_provider].to_i if !full_params[:support_services_provider].empty? + full_params[:support_services_provider] = full_params[:support_services_provider].to_i if !full_params[:support_services_provider]&.empty? if current_user.data_coordinator? full_params[:owning_organisation_id] = current_user.organisation_id diff --git a/config/locales/en.yml b/config/locales/en.yml index d6dcdaa07..76709ba83 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -65,6 +65,8 @@ en: invalid: "Select if this scheme provides for another client group" support_services_provider: invalid: "Select who provides the support services used by this scheme" + support_services_provider_before_type_cast: + invalid: "Select who provides the support services used by this scheme" location: attributes: units: