2

我确信这可能有点牵强,但我对 Active Model Serializers 提供的灵活性印象深刻。我想要类似的东西:

 def by_location_and_bin_number
    @items=MenuItem.where('bin_number=? and location_id=?', params[:bin_number], params[:location_id]).is_valid
    r={}
    r[:status]="success"
    r[:count] = @tems.count
    r[:menu_items] = @items, serializer: ItemMicroSerializer # <- not working
    render json: r.to_json
  end

但这不起作用。关于如何让它工作(或类似语法)的任何想法?

提前谢谢

4

1 回答 1

4

当你想序列化数组@items时,你可以使用独立的方法作为

r[:menu_items] = ActiveModel::ArraySerializer.new(@items, each_serializer: ItemMicroSerializer)

它将通过使用 ItemMicroSerializer 序列化每个对象来序列化提供的对象数组。

于 2014-04-04T23:23:20.170 回答