lib/relations/has_many.js
function(instance) {
    var args = _.rest(arguments);
    var objects = _.flatten(args);
    this.beforeRemovingObjects(instance, objects);
    this.disassociateObjects(instance, objects);
    return Actionable.create(instance.save.bind(instance));
  }
function(instance) {
    var args = _.rest(arguments);
    var objects = _.flatten(args);
    this.beforeRemovingObjects(instance, objects);
    this.disassociateObjects(instance, objects);
    return Actionable.create(instance.save.bind(instance));
  }
function ( instance ) { var args = _ . rest ( arguments ) ; var objects = _ . flatten ( args ) ; this . beforeRemovingObjects ( instance , objects ) ; this . disassociateObjects ( instance , objects ) ; return Actionable . create ( instance . save . bind ( instance ) ) ; }
The remove objects method for this relation.

This method invalidates the {@link HasMany#objectsQuery} cache and removes
the related objects from the {@link HasMany#collection} (if loaded).

It is accessible on an individual model via `remove<Singular>` and
`remove<Plural>`. For instance a user that has many articles would cause
this method to get triggered via `user.removeArticle` or
`user.removeArticles`.

The naming conventions are set forth in {@link HasMany#overrides}.

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

@method
@protected
@param {Model} instance The model instance on which to operate.
@param {...Object} [args] The arguments to the method.
@return {Actionable} A thenable object, use of which will trigger the
instance to be saved.
@see {@link BaseRelation#methods}
The remove objects method for this relation .