Rails:使用多个对象渲染json

时间:2016-12-05 21:19:16

标签: ruby-on-rails json ruby active-model-serializers applicationcontroller

我试图通过调用返回多个对象:

def index
    beers = Beer.all
    micros = Micros.all
    render json: {beers: beers, micro: micros}  
end

但是,对于这两个对象,只返回受尊重的序列化程序中列出的属性,而不是任何受尊重的序列化程序中的 has_many,belongs_to等关系。< / p>

如果我只想尝试返回一个对象,例如:

def index
    beers = Beer.all
    render json: beers 
end

然后它工作正常并返回序列化程序中列出的所有关系。

如何使用多个对象修复调用以返回序列化程序中的所有内容,而不仅仅是属性?

1 个答案:

答案 0 :(得分:3)

希望能帮到你

def index
  @beers = Beer.all
  @micros = Micros.all

  render json: {
     beers: ActiveModel::Serializer::CollectionSerializer.new(@beers, each_serializer: BeerSerializer),
     micros: ActiveModel::Serializer::CollectionSerializer.new(@micros, each_serializer: MicroSerializer),
  }
end