从我的数据库中的表中获取一些数据 - Ruby on rails



我的模型横幅与图像相关联,我需要带来所有图像,但只有字段文件,在文件中我有一个哈希,我只想在其中获取网址

我有这个代码:

Banner.find_by(event_id: @event.id).to_json(:include => [{:images => {:only => [:file]}}])

但这让我明白了:

{
  "id": 2,
  "created_at": "2019-04-24T14:59:08.000-05:00",
  "updated_at": "2019-04-24T14:59:08.000-05:00",
  "event_id": 3,
  "name": "ccccccccccccccccccccccssssss",
  "images": [
    {
      "file": {
        "url": "/uploads/image/file/300aecf6-b3c7-4b15-94a1-45c530efc4c4.png"
      }
    }
  ]
}

我想要这样的东西:

{
  "id": 2,
  "created_at": "2019-04-24T14:59:08.000-05:00",
  "updated_at": "2019-04-24T14:59:08.000-05:00",
  "event_id": 3,
  "name": "ccccccccccccccccccccccssssss",
  "images": [
    "/uploads/image/file/300aecf6-b3c7-4b15-94a1-45c530efc4c4.png"
  ]
}

我该怎么做?有什么建议吗?

有时最好把事情分成更小的碎片......

# create the query to get all the objects to prevent n+1 queries
banners = Banner.includes(images: :file)
# get the banner you want to serialize
banner = banners.find_by(event_id: @event.id)
# get all the urls for the images as an array
image_urls = banner.images.collect {|i| i.file.url }
# create the json object
json = banner.to_json.merge(images: image_urls)

最新更新