Method: GraphQL::Dataloader::ActiveRecordSource#fetch

Defined in:
lib/graphql/dataloader/active_record_source.rb

#fetch(record_ids) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/graphql/dataloader/active_record_source.rb', line 32

def fetch(record_ids)
  records = @model_class.where(@find_by => record_ids)
  record_lookup = {}
  if @find_by_many
    records.each do |r|
      key = @find_by.map { |fb| r.public_send(fb) }
      record_lookup[key] = r
    end
  else
    records.each { |r| record_lookup[r.public_send(@find_by)] = r }
  end
  record_ids.map { |id| record_lookup[id] }
end