Rails 3 + angularjs + minification does not work in production: Unknown provider: eProvider
Found it! They never said to apply the injection fixes to services too... The solution is to change this:
angular.module('itemServices', ['ngResource']). factory('Item', function($resource){ return $resource('items/:item_id.json', {}, { query: {method:'GET', params:{ item_id: 'all' }, isArray:true} }); });
to this:
angular.module('itemServices', ['ngResource']). factory('Item', ['$resource', function($resource){ return $resource('items/:item_id.json', {}, { query: {method:'GET', params:{ item_id: 'all' }, isArray:true} }); }]);
Remember, to also use DI on controllers within directives. Took me hours... CS example:
wrong:
controller: ($scope) -> $scope.closeModal = -> ModalService.close()
right:
controller: ["$scope" ($scope) -> $scope.closeModal = -> ModalService.close()]
Make sure to apply the DI pattern to ALL function definitions that require injection within your module. It can be easy to miss one. If you're using a routeProvider, factory, services, etc., they all need to have the DI pattern applied. I ended up deploying multiple times before I caught them all :P