diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index d86b2ac0..9c537218 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -85,8 +85,8 @@ module ActionController options[:scope] = serialization_scope unless options.has_key?(:scope) if resource.respond_to?(:to_ary) - options[:resource_name] = controller_name - options[:namespace] = namespace_for_serializer if namespace_for_serializer + options[:resource_name] ||= controller_name + options[:namespace] ||= namespace_for_serializer if namespace_for_serializer end serializer.new(resource, options) diff --git a/lib/active_model/array_serializer.rb b/lib/active_model/array_serializer.rb index e0c3ecfc..1bd9f55e 100644 --- a/lib/active_model/array_serializer.rb +++ b/lib/active_model/array_serializer.rb @@ -35,7 +35,7 @@ module ActiveModel def serializer_for(item) serializer_class = @each_serializer || Serializer.serializer_for(item, namespace: @namespace) || DefaultSerializer - serializer_class.new(item, scope: scope, key_format: key_format, only: @only, except: @except, polymorphic: @polymorphic) + serializer_class.new(item, scope: scope, key_format: key_format, only: @only, except: @except, polymorphic: @polymorphic, namespace: @namespace) end def serializable_object diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 689e132a..de9b2503 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -132,6 +132,7 @@ end @except = options[:except] ? Array(options[:except]) : nil @key_format = options[:key_format] @context = options[:context] + @namespace = options[:namespace] end attr_accessor :object, :scope, :root, :meta_key, :meta, :key_format, :context, :polymorphic @@ -217,7 +218,8 @@ end end def association_options_for_serializer(association) - prefix = association.options[:prefix] + prefix = association.options[:prefix] + namespace = association.options[:namespace] || @namespace || self.namespace { scope: scope }.tap do |opts| opts[:namespace] = namespace if namespace