diff --git a/app/controllers/spree/admin/base_controller.rb b/app/controllers/spree/admin/base_controller.rb index c1c0179133..67a44ad093 100644 --- a/app/controllers/spree/admin/base_controller.rb +++ b/app/controllers/spree/admin/base_controller.rb @@ -1,3 +1,4 @@ +# rubocop:disable Metrics/ClassLength module Spree module Admin class BaseController < Spree::BaseController @@ -121,13 +122,17 @@ module Spree def render_as_json(data, options = {}) ams_prefix = options.delete :ams_prefix - if [Array, ActiveRecord::Relation].include? data.class + if each_serializer_required?(data) render options.merge(json: data, each_serializer: serializer(ams_prefix)) else render options.merge(json: data, serializer: serializer(ams_prefix)) end end + def each_serializer_required?(data) + ['Array', 'ActiveRecord::Relation'].include?(data.class.name) + end + def serializer(ams_prefix) unless ams_prefix.nil? || ams_prefix_whitelist.include?(ams_prefix.to_sym) raise "Suffix '#{ams_prefix}' not found in ams_prefix_whitelist for #{self.class.name}." @@ -140,3 +145,4 @@ module Spree end end end +# rubocop:enable Metrics/ClassLength