Tiếp tục nhận ActionController: Lỗi UnknownFormat khi cố gắng sử dụng response_to và respond_with trong bộ điều khiển đường ray. Lỗi trên dòng sau trong bộ điều khiển.Rails 4.1 ActionController :: UnknownFormat error for respond_with sử dụng AngularJS
respond_with @surveys
Trong/app/tài sản/controllers/surveys_controller
respond_to :json
def index
@surveys = Survey.all
respond_with @surveys
end
Trong /config/routes.rb
WebInsight::Application.routes.draw do
scope :api do
resources :surveys, defaults: {format: 'json'}
end
resources :surveys
end
Trong /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/góc/controllers/surveys_ctrl.js
app.controller('SurveysCtrl', ['$scope', '$resource', function($scope, $resource) {
var Surveys = $resource('/api/surveys');
$scope.surveys = Surveys.query();
}]);
Một lời cảnh cáo ở đây: Nếu bạn đặt respond_to: json,: html, có nghĩa là đường ray sẽ tiếp tục phân phối đầu ra HTML bằng cách sử dụng đường ray chứ không phải góc cạnh. Nếu bạn muốn AngularJS phục vụ tất cả nội dung HTML như front-end, trong khi đường ray chỉ xử lý back-end (như trường hợp cho 1 ứng dụng trang), bạn không nên bật 'respond_to: html'. Thay vào đó, hãy đọc về định tuyến AngularJS. [http://scotch.io/tutorials/javascript/single-page-apps-with-angularjs-routing-and-templating] –