function(records, owner, resolver) {
    if (!records.length) { return; }

    // Group By Type
    var recordsByTypeMap = Ember.MapWithDefault.create({
      defaultValue: function() { return Ember.A(); }
    });

    forEach(records, function(record) {
      recordsByTypeMap.get(record.constructor).push(record);
    });

    forEach(recordsByTypeMap, function(type, records) {
      var ids = records.mapProperty('id'),
          adapter = this.adapterFor(type);

      Ember.assert("You tried to load many records but you have no adapter (for " + type + ")", adapter);
      Ember.assert("You tried to load many records but your adapter does not implement `findMany`", adapter.findMany);

      resolver.resolve(_findMany(adapter, this, type, ids, owner));
    }, this);
  }
function(records, owner, resolver) {
    if (!records.length) { return; }

    // Group By Type
    var recordsByTypeMap = Ember.MapWithDefault.create({
      defaultValue: function() { return Ember.A(); }
    });

    forEach(records, function(record) {
      recordsByTypeMap.get(record.constructor).push(record);
    });

    forEach(recordsByTypeMap, function(type, records) {
      var ids = records.mapProperty('id'),
          adapter = this.adapterFor(type);

      Ember.assert("You tried to load many records but you have no adapter (for " + type + ")", adapter);
      Ember.assert("You tried to load many records but your adapter does not implement `findMany`", adapter.findMany);

      resolver.resolve(_findMany(adapter, this, type, ids, owner));
    }, this);
  }
function ( records , owner , resolver ) { if ( ! records . length ) { return ; } // Group By Type var recordsByTypeMap = Ember . MapWithDefault . create ( { defaultValue : function ( ) { return Ember . A ( ) ; } } ) ; forEach ( records , function ( record ) { recordsByTypeMap . get ( record . constructor ) . push ( record ) ; } ) ; forEach ( recordsByTypeMap , function ( type , records ) { var ids = records . mapProperty ( 'id' ) , adapter = this . adapterFor ( type ) ; Ember . assert ( "You tried to load many records but you have no adapter (for " + type + ")" , adapter ) ; Ember . assert ( "You tried to load many records but your adapter does not implement `findMany`" , adapter . findMany ) ; resolver . resolve ( _findMany ( adapter , this , type , ids , owner ) ) ; } , this ) ; }
This method takes a list of records, groups the records by type,
converts the records into IDs, and then invokes the adapter's `findMany`
method.

The records are grouped by type to invoke `findMany` on adapters
for each unique type in records.

It is used both by a brand new relationship (via the `findMany`
method) or when the data underlying an existing relationship
changes.

@method fetchMany
@private
@param {Array} records
@param {DS.Model} owner
@param {Resolver} resolver
This method takes a list of records groups the records by type converts the records into IDs and then invokes the adapter s findMany method .