lib/jsonapi/resource_serializer.rb in jsonapi-resources-0.9.5 vs lib/jsonapi/resource_serializer.rb in jsonapi-resources-0.9.6
- old
+ new
@@ -392,16 +392,20 @@
}
end
def to_many_linkage(source, relationship)
linkage = []
+ include_config = include_directives.include_config(relationship.name.to_sym) if include_directives
+ include_filters = include_config[:include_filters] if include_config
+ options = { filters: include_filters || {} }
+
linkage_types_and_values = if source.preloaded_fragments.has_key?(format_key(relationship.name))
source.preloaded_fragments[format_key(relationship.name)].map do |_, resource|
[relationship.type, resource.id]
end
elsif relationship.polymorphic?
- assoc = source._model.public_send(relationship.name)
+ assoc = source.public_send("records_for_#{relationship.name}", options)
# Avoid hitting the database again for values already pre-loaded
if assoc.respond_to?(:loaded?) and assoc.loaded?
assoc.map do |obj|
[obj.type.underscore.pluralize, obj.id]
end
@@ -409,12 +413,9 @@
assoc.pluck(:type, :id).map do |type, id|
[type.underscore.pluralize, id]
end
end
else
- include_config = include_directives.include_config(relationship.name.to_sym) if include_directives
- include_filters = include_config[:include_filters] if include_config
- options = { filters: include_filters || {} }
source.public_send(relationship.name, options).map do |value|
[relationship.type, value.id]
end
end