Skip to content

Commit 84b80dc

Browse files
committed
Handle the case where filters are omitted.
1 parent cb4bdd3 commit 84b80dc

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

lib/jsonapi/resource.rb

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -332,18 +332,22 @@ def apply_filter(records, filter, value)
332332

333333
def apply_filters(records, filters)
334334
required_includes = []
335-
filters.each do |filter, value|
336-
if _associations.include?(filter)
337-
if _associations[filter].is_a?(JSONAPI::Association::HasMany)
338-
required_includes.push(filter)
339-
records = apply_filter(records, "#{filter}.#{_associations[filter].primary_key}", value)
335+
336+
if filters
337+
filters.each do |filter, value|
338+
if _associations.include?(filter)
339+
if _associations[filter].is_a?(JSONAPI::Association::HasMany)
340+
required_includes.push(filter)
341+
records = apply_filter(records, "#{filter}.#{_associations[filter].primary_key}", value)
342+
else
343+
records = apply_filter(records, "#{_associations[filter].foreign_key}", value)
344+
end
340345
else
341-
records = apply_filter(records, "#{_associations[filter].foreign_key}", value)
346+
records = apply_filter(records, filter, value)
342347
end
343-
else
344-
records = apply_filter(records, filter, value)
345348
end
346349
end
350+
347351
if required_includes.any?
348352
records.includes(required_includes)
349353
elsif records.respond_to? :to_ary

0 commit comments

Comments
 (0)