gpt4 book ai didi

ruby-on-rails - 使用 json 响应时出现 406 错误

转载 作者:行者123 更新时间:2023-12-03 00:52:21 25 4
gpt4 key购买 nike

我正在尝试通过 batman-rails gem 使 Rails 应用程序与 Node.js 框架 batman.js 一起运行。

当我在 Rails Controller 中使用 json 进行响应时,每次都会收到 406 错误,但我不知道为什么。这是我的 Controller :

  respond_to :json

def index
respond_with Sample.all
end

无论如何,这都会给我一个 406 。我不认为这与 bat 侠有关,而是rails本身。但为了更好地衡量,这是我的 bat 侠代码:

  index: (params) ->
TopNavTemplate.Sample.load (err) -> throw err if err
@set 'samples', TopNavTemplate.Sample.get('all')

然后我的index.html.erb 文件只是说“index”,它还没有真正对 bat 侠做任何事情。

有很多 406 JSON 相关的问题,我还没有真正能够将它们应用到我的情况。我做错了什么让rails respond_with JSON 吗?

最佳答案

好吧,我做了一个非常简单的应用程序来检查你的情况:

SamplesController.rb

class SamplesController < ApplicationController
respond_to :json

def show
respond_with Sample.find(params[:id])
end

def index
respond_with Sample.all
end
end

当我访问 /samples.jsonsamples/1.json 时,它按预期工作。但是,当我访问 /samples/samples/1 (无 .json 扩展名)时,出现 406 错误。

为了使 URL 在没有 .json 扩展名的情况下正常工作,您需要修改 config/routes.rb 文件,如下所示:

resources :samples, defaults: {format: :json}

否则,Rails 应用程序将尝试使用 HTML 响应来响应请求。

关于ruby-on-rails - 使用 json 响应时出现 406 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12320259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com