【问题标题】:406 (Not Acceptable) in rails 4 with angularjs带有angularjs的rails 4中的406(不可接受)
【发布时间】:2014-11-10 13:58:44
【问题描述】:

我正在使用 rails 4 和 angularjs。我正在关注 railscast(http://railscasts.com/episodes/405-angularjs) 教程。关于rails 3的教程。 问题是当我尝试从数据库中查询数据时出现错误。这是错误“GET localhost:3000/entries 406 (Not Acceptable)”。我认为我的角度代码运行良好,可能问题出在我的控制器上。因为当我使用“localhost:3000/entries”链接时,我收到此错误“EntriesController#index 中的 ActionController::UnknownFormat”。

控制器:

class EntriesController < ApplicationController
    respond_to :html, :json

      def index
        respond_with Entry.all
      end
end

角度:

app = angular.module("Raffler", ["ngResource"])

app.factory "Entry", ["$resource", ($resource) ->
  $resource("/entries/:id", {id: "@id"}, {update: {method: "PUT"}})
]
@RaffleCtrl = ["$scope", "Entry", ($scope, Entry) ->
  $scope.entries = Entry.query()
]

查看:

<div ng-controller="RaffleCtrl">
  <form ng-submit="addEntry()">
    <input type="text" ng-model="newEntry.name">
    <input type="submit" value="Add">
  </form>

  <ul>
    <li ng-repeat="entry in entries">
      {{entry.name}}
      <span ng-show="entry.winner" ng-class="{highlight: entry == lastWinner}" class="winner">WINNER</span>
    </li>
  </ul>

  <button ng-click="drawWinner()">Draw Winner</button>
</div>

【问题讨论】:

    标签: angularjs ruby-on-rails-4


    【解决方案1】:

    将此添加到您的路线配置中

    resources :entries, defaults: { format: 'json' }
    

    【讨论】:

    • 感谢您的回答,非常有帮助。知道为什么控制器顶部的 respond_to: :json 在这里没有完成同样的事情吗?
    • 我认为没有必要。我没有注意到它。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2017-04-08
    • 2013-12-18
    • 2015-03-17
    • 2019-11-17
    • 2017-08-23
    相关资源
    最近更新 更多