0

私はコールで複数のオブジェクトを返すようにしようとしています:のRails:複数のオブジェクトを持つレンダリングJSON

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

は、しかし、両方のオブジェクトのためだけのいずれか、尊敬シリアライザに記載されている属性がない返しますhas_many、belongs_toなど。の関係は、尊重されたシリアライザです。

私はちょうどのような、1つのオブジェクトを返すようにしようとしていた場合:

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

そして、それが正常に動作してシリアライザに記載されているすべての関係を返します。

属性だけでなくシリアライザ内のすべてを返すために、複数のオブジェクトでコールを修正するにはどうすればよいですか?

+0

"すべて" を定義するのに役立ちます。関連するモデルを 'include 'するには、シリアライザにそれらをインクルードするように指示する必要があります(例えば' render json:beers、include:[some_associated_model::another_associated_model] ')。質問している場合は – engineersmnky

+0

@engineersmnky" Everything "はすべてです私が述べたように、シリアライザに記載されているもの。私は複数のオブジェクトをレンダリングするときに、属性、belongs_to、has_many、has_oneなどを返すようにします。複数のオブジェクトを実行しようとすると属性を生成するだけです –

+0

見たいと思うように出力例を提供してください。あなたが私の例を見るなら、それはあなたが望むものをあなたに提供するでしょうが、あなたはそれを「インクルード」するようにjsonに言ってあなたが望むものを求めなければなりません。 – engineersmnky

答えて

0

希望は、あなたが

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 
関連する問題