gpt4 book ai didi

ruby-on-rails - Rails respond_with 没有输出剩余调用的状态

转载 作者:数据小太阳 更新时间:2023-10-29 07:24:16 25 4
gpt4 key购买 nike

我正在尝试使用 respond_with 方法使用 rails 制作一个简单的 rest api,但它不想输出任何类型的状态消息

例如,我希望它不仅返回 get 调用的 json,还返回 ok 状态。当发布或删除有效/失败时也是如此。

一些教程建议使用额外的 :status 参数,但它们似乎根本不会影响输出。

  def index
@conns = Connection.all
respond_with(@conns, :status => :ok)
end

这会返回与 :status => :ok 不存在时完全相同的内容。

有什么想法吗??

谢谢!

最佳答案

:status => :ok 设置 HTTP header 的状态代码,即它与 :status => 200 相同。如果你想向响应主体添加一些东西,你需要明确地添加它,例如

respond_with({:conns => @conns, :status => :success}.to_json)

编辑

好吧,那是行不通的。如果除了 JSON 之外你不需要响应任何东西,你可以只使用旧的render:

render :json => { :conns => @conns, :status => :success }

如果您必须使用明亮 Shiny 的新 respond_with 方法来适应多种响应类型,您可以创建一个响应 as_json 的类:

class JsonResponse
def initialize(data,status)
@data = data
@status = status
end
def as_json(options={})
{
:data => @data,
:status => @status
}
end
end

然后这样调用:

@conns = Connection.all
respond_with(JsonResponse.new(@conns,"success"))

关于ruby-on-rails - Rails respond_with 没有输出剩余调用的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157529/

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