Skip to content

Commit ab99cba

Browse files
authored
Merge pull request #818 from mgoodings/nested-resources-includes-patch
Fix nested resources creating N+1 queries on includes
2 parents cc775b2 + 5331774 commit ab99cba

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

lib/jsonapi/processor.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ def show_related_resources
141141
source_id = params[:source_id]
142142
relationship_type = params[:relationship_type]
143143
filters = params[:filters]
144+
include_directives = params[:include_directives]
144145
sort_criteria = params[:sort_criteria]
145146
paginator = params[:paginator]
146147
fields = params[:fields]
@@ -149,7 +150,8 @@ def show_related_resources
149150

150151
related_resources = source_resource.public_send(relationship_type,
151152
context: context,
152-
filters: filters,
153+
filters: filters,
154+
include_directives: include_directives,
153155
sort_criteria: sort_criteria,
154156
paginator: paginator,
155157
fields: fields)

lib/jsonapi/relationship_builder.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,9 @@ def build_to_many(relationship, foreign_key, associated_records_method_name, rel
129129
records = resource_klass.apply_filters(records, filters, options)
130130
end
131131

132-
sort_criteria = options.fetch(:sort_criteria, {})
132+
records = resource_klass.apply_includes(records, options)
133+
134+
sort_criteria = options.fetch(:sort_criteria, {})
133135
unless sort_criteria.nil? || sort_criteria.empty?
134136
order_options = relationship.resource_klass.construct_order_options(sort_criteria)
135137
records = resource_klass.apply_sort(records, order_options, @context)

0 commit comments

Comments
 (0)