@@ -267,7 +267,15 @@ def apply_filter(records, filter, value, options = {})
267267 strategy . call ( records , value , options )
268268 end
269269 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
271279 end
272280 end
273281
@@ -301,21 +309,16 @@ def apply_filters(records, filters, options = {})
301309
302310 if filters
303311 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 )
313314 end
315+
316+ records = apply_filter ( records , filter , value , options )
314317 end
315318 end
316319
317320 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 ) )
319322 end
320323
321324 records
0 commit comments