我使用JBuilder构建JSON响应,现在它看起来像:
json.array!(@work_posts) do |work_post|
json.extract! work_post, :post_title, :post_body, :salary, :urgently, :contact, :created_at, :updated_at
json.contact do
json.emails work_post.contact.emails
json.phones work_post.contact.phones
json.links work_post.contact.links
end
end
响应如下:
[
{
"post_title": "Some work",
"post_body": "work description",
"salary": "5$/hour",
"urgently": true,
"contact": {
"emails": "",
"phones": "",
"links": ""
},
"created_at": "2015-10-11T23:46:17.979+05:00",
"updated_at": "2015-10-11T23:46:17.979+05:00"
}
]
我想添加cutom键以使响应看起来像:
"result" : "success",
"data" : [
{
"post_title": "Some work",
"post_body": "work description",
"salary": "5$/hour",
"urgently": true,
"contact": {
"emails": "",
"phones": "",
"links": ""
},
"created_at": "2015-10-11T23:46:17.979+05:00",
"updated_at": "2015-10-11T23:46:17.979+05:00"
}
]
我该怎么做才能实现这个目标?
答案 0 :(得分:1)
我在任何地方都没有看到这样的问题,我终于实现了我想要的。希望它对某人有用。所以答案非常明显:我不应该使用json.array!
而应该使用我需要的东西=> json.data
然后我只需要将json.result "success"
放在上面。结果将是:
"result" : "success",
"data" : [
{
"post_title": "Some work",
"post_body": "work description",
"salary": "5$/hour",
"urgently": true,
"contact": {
"emails": "",
"phones": "",
"links": ""
},
"created_at": "2015-10-11T23:46:17.979+05:00",
"updated_at": "2015-10-11T23:46:17.979+05:00"
}
]