Continua a ricevere l'errore ActionController: UnknownFormat durante il tentativo di utilizzare respond_to e respond_with nel controller di rails. Errore nella riga successiva nel controller.Rails 4.1 ActionController :: UnknownFormat errore per respond_with utilizzando AngularJS
respond_with @surveys
in/app/beni/controller/surveys_controller
respond_to :json
def index
@surveys = Survey.all
respond_with @surveys
end
In /config/routes.rb
WebInsight::Application.routes.draw do
scope :api do
resources :surveys, defaults: {format: 'json'}
end
resources :surveys
end
In /app/assets/views/surveys/index.html .erb
<h1>Your Surveys</h1>
<form>
<input type="text" ng-model='newSurvey' placeholder="Enter a survey">
<input type="submit" value="Add">
</form>
<div ng-controller="SurveysCtrl">
<ul>
<li ng-repeat="survey in surveys">
{{ survey.theme_id }}, {{ survey.name }}, {{ survey.description }}
</li>
</ul>
</div>
In/app/assets/javascri pts/angolare/controller/surveys_ctrl.js
app.controller('SurveysCtrl', ['$scope', '$resource', function($scope, $resource) {
var Surveys = $resource('/api/surveys');
$scope.surveys = Surveys.query();
}]);
Una parola di cautela qui: Se si specifica answer_to: json,: html, significa che le rotaie continueranno a offrire l'output HTML utilizzando le rotaie, non angolare. Se vuoi che AngularJS serva tutto il contenuto HTML come front-end, mentre i rails gestiscono solo il back-end (come dovrebbe essere il caso per le app di 1 pagina), non devi abilitare 'answer_to: html'. Piuttosto, consulta il routing di AngularJS. [http://scotch.io/tutorials/javascript/single-page-apps-with-angularjs-routing-and-templating] –