2

これは一筋縄ではいかないと思いますが、アクティブ モデル シリアライザーが提供する柔軟性には非常に感銘を受けました。私は次のようなことをしたい:

 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

しかし、これは機能しません。これを機能させる方法(または同様の構文)に関するアイデアはありますか?

thx事前に

4

1 に答える 1

4

配列をシリアライズしたいので@items、独立した方法を次のように使用できます

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

ItemMicroSerializer を使用して各オブジェクトをシリアル化することにより、提供されたオブジェクトの配列をシリアル化します。

于 2014-04-04T23:23:20.170 に答える