Hace poco creé una aplicación AngularJS 1.0.0rc8 con un back-end de Rails 3.2.3 y funcionó bien en el desarrollo, pero después de implementar en Heroku hubo un Error del proveedor desconocido - aparentemente la aplicación no pudo ver el objeto de servicio.AngularJS + Rails - Problemas al comprimir activos
sé que ahora es necesario incluir angulares-resource.js como un archivo separado e inyectar ngResource en el módulo de aplicación como esta:
// main app javascript file
'use strict';
angular.module('contactapp', ['ngResource']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/contacts', {template: 'assets/app/partials/contact-list.html', controller: ContactListCtrl}).
when('/contacts/new', {template: 'assets/app/partials/new-contact.html', controller: ContactListCtrl}).
when('/contacts/:contact_id', {template: 'assets/app/partials/contact-detail.html', controller: ContactDetailCtrl}).
otherwise({redirectTo: '/contacts'});
}]);
También sé que cuando los archivos se minified que la los controladores no pueden saber lo que sus dependencias son menos que también se inyectan en los objetos del controlador de esta manera:
ContactListCtrl.$inject = ['$scope', '$http', 'Contacts'];
también he intentado hacerlo de la otra forma que recomienda angular con soporte de notat iones y pasando una función como esta:
var ContactListCtrl= ['$scope', '$http', 'Contacts', function($scope, $http, Contacts) { /* constructor body */ }];
Sin embargo, nada de esto parece que funciona.
La única forma de mi aplicación podría ver el recurso proporcionaron fue apagando la compresión de activos en el archivo production.rb, así:
# Compress JavaScripts and CSS
config.assets.compress = false
tardó varias horas para mí para resolver esto, pero yo Recientemente vi otra aplicación Rails + AngularJS que tenía el mismo problema.
Jens Krause llegaron a la misma conclusión y lo explica en su blog: http://www.websector.de/blog/2012/01/17/fun-with-angularjs-rails-coffeescript-sass-another-cafe-townsend-example/
Si tengo una proporción relativamente grande de aplicaciones, y necesito para comprimir los activos, ¿cómo puedo evitar esto usando angular con rieles ?
Gracias.
He intentado este método también sin éxito, me sale el mismo error. Vea aquí: http://stackoverflow.com/questions/13459452/rails-3-angularjs-minification-does-not-work-in-production-unknown-provider – jemminger