Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails 4使用JBuilder使用自定义键构建JSON_Ruby On Rails 4_Jbuilder - Fatal编程技术网

Ruby on rails 4 Rails 4使用JBuilder使用自定义键构建JSON

Ruby on rails 4 Rails 4使用JBuilder使用自定义键构建JSON,ruby-on-rails-4,jbuilder,Ruby On Rails 4,Jbuilder,我正在使用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

我正在使用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"
    }
]
反应如下:

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

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

我该怎么做才能做到这一点呢?

我在任何地方都没有看到过这样的问题,我终于实现了我想要的。希望它对某人有用。所以答案很明显:不要使用
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"
  }
]