Rails 4使用JBuilder构建自定义键的JSON

3

我正在使用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"
    }
]

我想添加自定义键,使响应看起来像这样:
"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"
    }
]

我该怎么做才能实现这个目标?

1个回答

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"
  }
]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接