lib/relations/has_many.js
function(instance, objects) {
    var self = this;
    var after = this.afterRemovingObjects.bind(this, instance, objects);
    var removable = _.filter(objects, 'persisted');
    return self._updateForeignKeys(instance, removable, undefined).tap(after);
  }
function(instance, objects) {
    var self = this;
    var after = this.afterRemovingObjects.bind(this, instance, objects);
    var removable = _.filter(objects, 'persisted');
    return self._updateForeignKeys(instance, removable, undefined).tap(after);
  }
function ( instance , objects ) { var self = this ; var after = this . afterRemovingObjects . bind ( this , instance , objects ) ; var removable = _ . filter ( objects , 'persisted' ) ; return self . _updateForeignKeys ( instance , removable , undefined ) . tap ( after ) ; }
Perform the necessary updates to remove objects for this relation.

This method invalidates the {@link HasMany#objectsQuery}.

Mixins can override {@link HasMany#executeRemove} to change the way
updates are performed when related objects are removed. This is the
default implementation.

@method
@protected
@param {Model} instance The model instance on which to operate.
@param {Array} objects The objects to remove from the relationship.
Perform the necessary updates to remove objects for this relation .