在Rails中组合JSON对象

问题描述 投票:0回答:1

我在events_controller.rb中有一个方法,我想返回一个JSON对象,该对象将Object.all中的数据以及附加图像的rails_blob_path组合到每个JSON元素。图像不是事件模型的一部分,但已附加。

class EventsController < ApplicationController

  def get_events
    @events = Event.all
    images = @events.map {|i| rails_blob_path(i.image)}
    render json: { data: @events, images: images}

  end

end

此渲染

{"data":[{"id":7,"name":"New York Event","datetime":null,"location":"NYC","tickets":null,"created_at":"2020-06-04T15:21:23.656Z","updated_at":"2020-06-04T15:21:23.712Z","price":null}],"images":["/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ec449cf510b8b7dd19c83531422a4fbe47890f12/nyc.jpeg"]}

但是我希望“图像”成为“数据”元素的一部分,以便我可以查询data.id,data.name和data.image。

非常感谢您的帮助。

ruby-on-rails json
1个回答
0
投票

您可以做

@events = Event.all.map { |e| e.attributes.merge(image: rails_blob_path(e.image)) }
render json: { data: @events }, status: 200
© www.soinside.com 2019 - 2024. All rights reserved.