code: function (name, _skipAssert) {
        var owner = _containerOwner.getOwner(this);
        var route = owner.lookup('route:' + name);
        var controller;
  
        if (route && route.controllerName) {
          name = route.controllerName;
        }
  
        controller = owner.lookup('controller:' + name);
  
        // NOTE: We're specifically checking that skipAssert is true, because according
        //   to the old API the second parameter was model. We do not want people who
        //   passed a model to skip the assertion.
        _emberMetalDebug.assert('The controller named \'' + name + '\' could not be found. Make sure that this route exists and has already been entered at least once. If you are accessing a controller not associated with a route, make sure the controller class is explicitly defined.', controller || _skipAssert === true);
  
        return controller;
      }
docs: Returns the controller for a particular route or name.
  The controller instance must already have been created, either through entering the
  associated route or using `generateController`.
  ```javascript
  App.PostRoute = Ember.Route.extend({
  setupController: function(controller, post) {
  this._super(controller, post);
  this.controllerFor('posts').set('currentPost', post);
  }
  });
  ```
  @method controllerFor
  @param {String} name the name of the route or controller
  @return {Ember.Controller}
  @public