diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 7735436f..fb6b5ff7 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -107,7 +107,7 @@ end @root = options.fetch(:root, self.class._root) @meta_key = options[:meta_key] || :meta @meta = options[@meta_key] - @options = options.reject{|k,v| [:root, :meta_key, :meta].include?(k) } + @options = options.reject{|k,v| [:scope, :root, :meta_key, :meta].include?(k) } end attr_accessor :object, :scope, :meta_key, :meta, :root, :options @@ -166,7 +166,7 @@ end def build_serializer(association) object = send(association.name) - association.build_serializer(object, options) + association.build_serializer(object, scope: scope) end def serialize(association) diff --git a/test/fixtures/poro.rb b/test/fixtures/poro.rb index 07d1bbf7..a43954b5 100644 --- a/test/fixtures/poro.rb +++ b/test/fixtures/poro.rb @@ -50,11 +50,6 @@ class ProfileSerializer < ActiveModel::Serializer scope ? "#{description} - #{scope}" : description end - def name - name = object.read_attribute_for_serialization(:name) - options[:custom_name] ? "#{name} - #{options[:custom_name]}" : name - end - attributes :name, :description end diff --git a/test/unit/active_model/serializer/has_one_test.rb b/test/unit/active_model/serializer/has_one_test.rb index 470c5a65..059d2646 100644 --- a/test/unit/active_model/serializer/has_one_test.rb +++ b/test/unit/active_model/serializer/has_one_test.rb @@ -62,15 +62,6 @@ module ActiveModel }, @user_serializer.as_json) end - def test_allow_to_pass_options_to_associations - @user_serializer.options.merge!(custom_name: 'custom') - @association.embed = :objects - - assert_equal({ - 'user' => { name: 'Name 1', email: 'mail@server.com', profile: { name: 'N1 - custom', description: 'D1' } } - }, @user_serializer.as_json) - end - def test_associations_embedding_nil_ids_serialization_using_as_json @association.embed = :ids @user.instance_eval do