Skip to content

Commit b52ef84

Browse files
authored
Merge pull request #1189 from cerebris/retrieve_records
Introduce `Resource.retrieve_records`
2 parents f619538 + 1b12a00 commit b52ef84

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

lib/jsonapi/processor.rb

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -578,14 +578,10 @@ def populate_resource_set(resource_set, serializer, find_options)
578578

579579
# fill in the missed resources, it there are any
580580
unless missed_ids.empty?
581-
filters = {resource_klass._primary_key => missed_ids}
582-
find_opts = {
583-
context: context,
584-
fields: find_options[:fields] }
581+
missed_records = resource_klass.retrieve_records(missed_ids, find_options)
582+
missed_resources = resource_klass.resources_for(missed_records, context)
585583

586-
found_resources = resource_klass.find(filters, find_opts)
587-
588-
found_resources.each do |resource|
584+
missed_resources.each do |resource|
589585
relationship_data = resource_set[resource_klass][resource.id][:relationships]
590586

591587
if resource_klass.caching?

lib/jsonapi/resource.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -732,6 +732,10 @@ def records(options = {})
732732
_model_class.all
733733
end
734734

735+
def retrieve_records(ids, options = {})
736+
_model_class.where(_primary_key => ids)
737+
end
738+
735739
def resources_for(records, context)
736740
records.collect do |record|
737741
resource_for(record, context)

test/fixtures/active_record.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1450,6 +1450,10 @@ def find_records_by_keys(keys, options = {})
14501450
end
14511451
breeds
14521452
end
1453+
1454+
def retrieve_records(ids, options = {})
1455+
find_records_by_keys(ids, options)
1456+
end
14531457
end
14541458
end
14551459

0 commit comments

Comments
 (0)