@@ -267,7 +267,15 @@ def apply_filter(records, filter, value, options = {})
267
267
strategy . call ( records , value , options )
268
268
end
269
269
else
270
- records . where ( filter => value )
270
+ if _resource_klass . _relationships . include? ( filter )
271
+ if _resource_klass . _relationships [ filter ] . belongs_to?
272
+ records . where ( _resource_klass . _relationships [ filter ] . foreign_key => value )
273
+ else
274
+ records . where ( "#{ _resource_klass . _relationships [ filter ] . table_name } .#{ _resource_klass . _relationships [ filter ] . primary_key } " => value )
275
+ end
276
+ else
277
+ records . where ( filter => value )
278
+ end
271
279
end
272
280
end
273
281
@@ -301,21 +309,16 @@ def apply_filters(records, filters, options = {})
301
309
302
310
if filters
303
311
filters . each do |filter , value |
304
- if _resource_klass . _relationships . include? ( filter )
305
- if _resource_klass . _relationships [ filter ] . belongs_to?
306
- records = apply_filter ( records , _resource_klass . _relationships [ filter ] . foreign_key , value , options )
307
- else
308
- required_includes . push ( filter . to_s )
309
- records = apply_filter ( records , "#{ _resource_klass . _relationships [ filter ] . table_name } .#{ _resource_klass . _relationships [ filter ] . primary_key } " , value , options )
310
- end
311
- else
312
- records = apply_filter ( records , filter , value , options )
312
+ if _resource_klass . _relationships . include? ( filter ) && !_resource_klass . _relationships [ filter ] . belongs_to?
313
+ required_includes . push ( filter . to_s )
313
314
end
315
+
316
+ records = apply_filter ( records , filter , value , options )
314
317
end
315
318
end
316
319
317
320
if required_includes . any?
318
- records = apply_includes ( records , options . merge ( include_directives : IncludeDirectives . new ( _resource_klass , required_includes , force_eager_load : true ) ) )
321
+ options . merge! ( include_directives : IncludeDirectives . new ( _resource_klass , required_includes , force_eager_load : true ) )
319
322
end
320
323
321
324
records
0 commit comments