Compute only requested attributes.

This commit is contained in:
Lucas Hosseini
2015-10-31 19:20:53 +01:00
parent ecc3b35517
commit 0948c4199a
3 changed files with 5 additions and 10 deletions

View File

@@ -57,10 +57,7 @@ module ActiveModel
def resource_object_for(options)
cache_check(serializer) do
attributes = serializer.attributes
attributes.slice!(*options[:fields]) if options[:fields]
attributes
serializer.attributes(options[:fields])
end
end
end

View File

@@ -140,8 +140,7 @@ module ActiveModel
cache_check(serializer) do
resource_object = resource_identifier_for(serializer)
requested_fields = fieldset && fieldset.fields_for(resource_object[:type])
attributes = serializer.attributes.except(:id)
attributes.slice!(*requested_fields) if requested_fields
attributes = serializer.attributes(requested_fields).except(:id)
resource_object[:attributes] = attributes if attributes.any?
resource_object
end