diff --git a/app/controllers/spree/admin/general_settings_controller.rb b/app/controllers/spree/admin/general_settings_controller.rb index 21067ab1df..6ca68a2a4a 100644 --- a/app/controllers/spree/admin/general_settings_controller.rb +++ b/app/controllers/spree/admin/general_settings_controller.rb @@ -10,13 +10,7 @@ module Spree end def update - available_units = [] - params.each do |name, value| - if value == "1" && unit = name.match(/available_units_(.*)/)&.captures&.first - available_units << unit - end - end - Spree::Config[:available_units] = available_units.join(",") + combine_available_units_params params.each do |name, value| next unless Spree::Config.has_preference? name @@ -26,6 +20,18 @@ module Spree redirect_to spree.edit_admin_general_settings_path end + + private + + def combine_available_units_params + available_units = [] + params.each do |name, value| + if value == "1" && unit = name.match(/available_units_(.*)/)&.captures&.first + available_units << unit + end + end + params[:available_units] = available_units.join(",") + end end end end