diff --git a/lib/active_model_serializers/adapter/attributes.rb b/lib/active_model_serializers/adapter/attributes.rb index f28295c0..9ddf8516 100644 --- a/lib/active_model_serializers/adapter/attributes.rb +++ b/lib/active_model_serializers/adapter/attributes.rb @@ -3,6 +3,7 @@ module ActiveModelSerializers class Attributes < Base def serializable_hash(options = nil) options = serialization_options(options) + options[:fields] ||= instance_options[:fields] serializer.serializable_hash(instance_options, options, self) end end diff --git a/test/adapter/json/collection_test.rb b/test/adapter/json/collection_test.rb index 2ff23336..8deb4050 100644 --- a/test/adapter/json/collection_test.rb +++ b/test/adapter/json/collection_test.rb @@ -84,6 +84,20 @@ module ActiveModelSerializers assert_equal(expected, actual) end + + def test_fields_with_no_associations_include_option + actual = ActiveModelSerializers::SerializableResource.new( + [@first_post, @second_post], adapter: :json, fields: [:id], include: [] + ).as_json + + expected = { posts: [{ + id: 1 + }, { + id: 2 + }] } + + assert_equal(expected, actual) + end end end end