【发布时间】:2017-04-24 08:24:34
【问题描述】:
我有一个 REST 服务,其响应结构因请求的某些属性而异。从我的代码中,我根据要发送到控制器的响应返回不同的类对象(不是 ActiveRecord 对象)。从控制器获得的响应中,某些属性需要作为响应头传递。但这应该从响应正文中删除。如何从类对象中删除它?
假设我对控制器的响应可能是具有属性的 class1 对象:attr1、attr2、attr3
现在 attr3 实际上应该在响应标头中,所以这有效: response.headers["Headertitle"]=attr3
但我的 json 响应应该只有 attr1、attr2。
另一种情况可能是对控制器的响应是具有 attr1、attr3、attr4、attr5 的 class2 对象。从此 attr3 也转到响应标头。再次响应不应该有 attr3。
attr3 的值取决于某些业务规则,并根据要求而有所不同。但是每个响应都需要在响应标头中而不是在正文中具有 attr3。
如何从响应中删除 attr3?
我已经试过了:
format.json { 渲染 :json => json_response.to_json(除了: ["attr3"])}
这不起作用。
【问题讨论】:
-
定义“不起作用”
-
意思是attr3还在响应中。
标签: ruby-on-rails json rest response