title: JSONAPI serialize nested hasMany relationships
body: <p>We're using JSONAPI for this project, but for [reasons] we can't handle its recommended relationship structure in the API, so we're serving and expecting them as nested objects instead, with the following format:</p>
  
  <pre><code>{
    "data":{
      "type":"video",
      "id":"55532284a1f9f909b0d11d73",
  
      "attributes":{
        "title":"Test",
  
        "transcriptions":{
          "type": "embedded",
  
          "data":[
            {
              "type":"transcription",
              "id":"203dee25-4431-42d1-a0ba-b26ea6938e75",
  
              "attributes":{
                "transcriptText":"Some transcription text here. And another sentence after it.",
  
                "cuepoints":{
                  "type":"embedded",
  
                  "data":[
                    {
                      "type":"cuepoint",
                      "id":"bb6b0434-bdc4-43e4-8010-66bdef5c432a",
  
                      "attributes":{
                        "text":"Some transcription text here."
                      }
                    },
                    {
                      "type":"cuepoint",
                      "id":"b663ee00-0ebc-4cf4-96fc-04d904bc1baf",
  
                      "attributes":{
                        "text":"And another sentence after it."
                      }
                    }
                  ]
                }
              }
            }
          ]
        }
      }
    }
  }
  </code></pre>
  
  <p>I have the following model structure:</p>
  
  <pre><code>// models/video
  export default DS.Model.extend({
    transcriptions: DS.hasMany('transcription')
  )};
  
  // models/transcription
  export default DS.Model.extend({
    video: DS.belongsTo('video'),
    cuepoints: DS.hasMany('cuepoint')
  });
  
  // models/cuepoint
  export default DS.Model.extend({
    transcription: DS.belongsTo('transcription')
  );
  </code></pre>
  
  <p>Now, what we want to do is save a <code>video</code> record, and have it serialize the <code>transcriptions</code> and <code>cuepoints</code> it contains. I have the following serializer, and it works absolutely fine for embedding a <code>transcription</code> into a <code>video</code> ie. one level, but I need it to then embed the <code>cuepoints</code> into that too.</p>
  
  <pre><code>export default DS.JSONAPISerializer.extend({
      serializeHasMany: function(record, json, relationship) {
        var hasManyRecords, key;
            key = relationship.key;
            hasManyRecords = Ember.get(record, key);
  
        if (hasManyRecords) {
          json.attributes[key] = {};
  
          hasManyRecords.forEach(function(item) {
            json.attributes[key].data = json.attributes[key].data || [];
  
            json.attributes[key].data.push({
              attributes: item._attributes,
              id: item.get('id'),
              type: item.get('type')
            });
          });
        } else {
          this._super(record, json, relationship);
        }
      }
    });
  </code></pre>
  
  <p>Inspecting the <code>record</code>, <code>json</code> and <code>relationship</code> properties in the <code>serializeHasMany</code> method, I can't see anything about the nested relationships, so not even sure I'm using the right method.</p>
  
  <p>Any ideas where I'm going wrong with this?</p>