diff --git a/lib/active_model/serializer/adapter/attributes.rb b/lib/active_model/serializer/adapter/attributes.rb index 4331f579c..79cf58dcd 100644 --- a/lib/active_model/serializer/adapter/attributes.rb +++ b/lib/active_model/serializer/adapter/attributes.rb @@ -10,7 +10,7 @@ def initialize(serializer, options = {}) def serializable_hash(options = nil) options ||= {} if serializer.respond_to?(:each) - result = serializer.map { |s| Attributes.new(s).serializable_hash(options) } + result = serializer.map { |s| Attributes.new(s, instance_options).serializable_hash(options) } else hash = {} diff --git a/lib/active_model/serializer/adapter/json.rb b/lib/active_model/serializer/adapter/json.rb index 4e5fd29fd..ab81f5710 100644 --- a/lib/active_model/serializer/adapter/json.rb +++ b/lib/active_model/serializer/adapter/json.rb @@ -7,7 +7,7 @@ class Json < Base def serializable_hash(options = nil) options ||= {} - { root => Attributes.new(serializer).serializable_hash(options) } + { root => Attributes.new(serializer, instance_options).serializable_hash(options) } end private diff --git a/test/adapter/json/collection_test.rb b/test/adapter/json/collection_test.rb index f627dd845..3b9e4b019 100644 --- a/test/adapter/json/collection_test.rb +++ b/test/adapter/json/collection_test.rb @@ -75,6 +75,16 @@ def test_root_is_underscored assert_equal 1, adapter.serializable_hash[:virtual_values].length end + + def test_include_option + serializer = ArraySerializer.new([@first_post, @second_post]) + adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, include: '') + actual = adapter.serializable_hash + expected = { posts: [{ id: 1, title: 'Hello!!', body: 'Hello, world!!' }, + { id: 2, title: 'New Post', body: 'Body' }] } + + assert_equal(expected, actual) + end end end end