ruby-on-rails – Rails 4.1 ActionController ::使用AngularJS的respond_with的UnknownFormat错误

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails 4.1 ActionController ::使用AngularJS的respond_with的UnknownFormat错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试在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

不允许控制器中的html只是将以下内容添加方法

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
原文链接:https://www.f2er.com/ruby/268167.html

猜你在找的Ruby相关文章