diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index 891c5ad3..69573298 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -65,11 +65,21 @@ module ActionController options = default_serializer_options.merge(options) if serializer = options.fetch(:serializer, ActiveModel::Serializer.serializer_for(resource)) - options[:context] = { scope: serialization_scope }.merge!(options[:context] || {}) + options[:context] = build_context_from options[:context] options[:resource_name] = controller_name if resource.respond_to?(:to_ary) serializer.new(resource, options) end end + + def build_context_from(context_option) + default_context.tap do |context| + context.merge! context_option if context_option + end + end + + def default_context + { scope: serialization_scope } + end end end