gpt4 book ai didi

ruby-on-rails - 仅响应 rails 中的 json

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

在我的仅 json 的 rails 应用程序中,每当有人调用我的 rails 应用程序时,我想发送一个 406 代码,接受 header 设置为除应用程序/json 之外的任何内容。当我将内容类型设置为除 application/json 之外的任何内容时,我还希望它发送 415

我的 Controller 有 respond_to :json 放在上面。我只在所有操作中渲染 json。但是,我如何确保为所有其他接受 header /内容类型调用的所有调用返回错误代码 406/415,并且格式设置为 json 以外的任何内容。

例如。如果我的资源是书籍/1 我想允许
book/1.json 或 books/1 与 application/json 接受标题和内容类型

关于如何执行这两个操作的任何想法?

最佳答案

基本上,您可以通过两种方式限制您的回复。

首先是respond_to为您的 Controller 。这将自动触发 406 Not Acceptable如果请求未定义的格式。

例子:

class SomeController < ApplicationController
respond_to :json


def show
@record = Record.find params[:id]

respond_with @record
end
end

另一种方法是添加 before_filter检查格式并做出相应的 react 。

例子:
class ApplicationController < ActionController::Base
before_filter :check_format


def check_format
render :nothing => true, :status => 406 unless params[:format] == 'json' || request.headers["Accept"] =~ /json/
end
end

关于ruby-on-rails - 仅响应 rails 中的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14579774/

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