尝试在rails控制器中使用respond_to和respond_with时,继续获取ActionController:UnknownFormat错误.控制器中以下行出错.
respond_with @surveys
在/ app / assets / controllers / surveys_controller中
respond_to :json def index @surveys = Survey.all respond_with @surveys end
在/config/routes.rb中
WebInsight::Application.routes.draw do scope :api do resources :surveys,defaults: {format: 'json'} end resources :surveys end
在/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>
在/app/assets/javascripts/angular/controllers/surveys_ctrl.js中
app.controller('SurveysCtrl',['$scope','$resource',function($scope,$resource) { var Surveys = $resource('/api/surveys'); $scope.surveys = Surveys.query(); }]);
解决方法
它有接缝
respond_to :json
路由将json定义为默认值时有效
scope :api,defaults: {format: :json} do resources :resources end
def new @resource = Resource.new respond_with(@resource) do |format| format.html { render nothing: true,status: :unauthorized } format.json { render :json => @resource.as_json } end end