Best practice to get multiple data from route before the view rendering?

If you were using something like ember data, the user would be cached if it was fetched previously so passing the id to User.find would get you the cached data instantly. Of course this isn’t the case with your manual AJAX request, but you can return a promise in afterModel:

App.UserRoute = Em.Route.extend({
  model: function(params) {
    return $.get('/users/'+params.user_id+'.json');
  },

  afterModel: function(model) {
    return Em.RSVP.hash({
      user: model,
      roleList: $.get('/role_list.json')
    });
  }
});