私はこのようになります私のフロントエンド・アプリケーション・JSON送信しようとしている:私は 使用ActiveModel ::シリアライザ2つの親のJSON配列を含むように
render :json => @facilities
試してみました
{
facilities: [
{id: 5, name: 'happy days ranch', location: { address: '1424 Pastoral Lane', zipcode: '25245'}, instructor_ids: [2, 4, 9]}
],
instructors: [
{id: 4, name: 'Johnny Pheonix', skill: '8', picture: 'aws_url', facility_ids: [5, 8, 12}
]
}
物事をシリアライザがこれを検出します。わーい!これは任意のインストラクター
render :json => {facilities: @facilities, instructors: @instructors}
が含まれていませんが、これは私のインストラクター配列や設備の配列を与えるが、activeModel ::シリアライザが使用されていません。まず
render :json => [@facilities, @instructors]
それは私に二つの配列を与えた、そしてそれはActiveModel ::シリアライザを使用するので、私は、この1について興奮していました。しかし、これはJSONのようなものです:
{facilities: [
{facilities: [
#my facilities data
]},
{facilities: [
#my instructor data
]}
]}
私はActiveModel :: Serializersでも許可しようとしていますか?もしそうなら、どうですか?
ありがとうございます!
これはまったく同じ問題です。素晴らしい答えをありがとう! –
ありがとうございます。これは動作し、レンダラーで 'root:false'を設定することでルートノードの検索を無効にすることができます。レビュー後、2つのルート要素でこのアプローチを使用しないことにしました.2つの別々のAPIエンドポイントを使用することになり、設計が簡単になりました。 –