Ruby API响应视图:如何呈现JSON响应?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby API响应视图:如何呈现JSON响应?相关的知识,希望对你有一定的参考价值。
我是Ruby的新手,正在尝试构建API。
我遵循了教程,并且在调用API端点时能够返回JSON响应。
在此示例中,调用的函数引发了一个错误,我希望将其作为JSON响应传递。
my_controller.rb
class MyController < ApplicationController
def getTracklist
begin
importer = #this raises an error
rescue StandardError => e
@response = {
error: e.message,
}
return @response
end
end
end
我的观点如下:
getTracklist.json.jbuilder
json.response @response
事物是
这有效,但我的回复为
{"response":{"error":"the error message"}}
当我想要它时
{"error":"the error message"}
我尝试将视图更改为
json @response
但失败了:
ActionView :: Template :: Error(未定义的方法'json'为是什么意思? JSON):1:json @response
所以我如何将响应完全“呈现”而不必将其放在属性中?
[我在阅读有关ROR的内容时也看到过有时会使用此代码,我想知道在这种情况下如何使用它:
render json: { error_code:'not_found', error: e.message }, status: :not_found
谢谢!
有多种方法可以实现您想要的。您可以将响应merge!
放入jbuilder根目录。
merge!
上面将所有键/值对合并到jbuilder根目录中。您也可以选择json.merge! @response
特定属性。
extract!
或者,您已经可以在控制器中简单地渲染它了,因为您已经组成了结构,下面的内容就足够了。
extract!
您可以为jBuilder执行此操作:
json.extract! @response, :error
render json: @response
json.merge!(@response)
对控制器进行这些更改可以帮助您满足要求。完成此操作后,您无需查看。
以上是关于Ruby API响应视图:如何呈现JSON响应?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模型/集合获取 4 个 JSON (API) 响应到主干.js 中的一个视图
如何在 React js 中将 HTML 模板呈现为来自 json 的响应
使用 Pandas 从 BigQuery 呈现 JSON 响应?
如何通过匹配来自两个 API 的 id 来查看来自两个 JSON API 的响应到单个回收器视图适配器中?