@@ -27,7 +27,7 @@ function defaultSerialize (options, cb) {
2727 */
2828 if ( options . requestedIncludes ) {
2929 try {
30- handleIncludes ( resultData , options . requestedIncludes , options . relationships ) ;
30+ handleIncludes ( resultData , options . requestedIncludes , options . relationships , options . app ) ;
3131 } catch ( err ) {
3232 cb ( err ) ;
3333 }
@@ -313,7 +313,7 @@ function makeLinks (links, item) {
313313 * @throws {Error }
314314 * @return {undefined }
315315 */
316- function handleIncludes ( resp , includes , relations ) {
316+ function handleIncludes ( resp , includes , relations , app ) {
317317 var resources = _ . isArray ( resp . data ) ? resp . data : [ resp . data ] ;
318318
319319 if ( typeof includes === 'string' ) {
@@ -328,7 +328,13 @@ function handleIncludes (resp, includes, relations) {
328328 return includes . map ( function ( include ) {
329329 var relation = relations [ include ] ;
330330 var propertyKey = relation . keyFrom ;
331- var plural = utils . pluralForModel ( relation . modelTo ) ;
331+ var plural = '' ;
332+ if ( relation . polymorphic ) {
333+ var discriminator = resource . attributes [ relation . polymorphic . discriminator ] ;
334+ plural = utils . pluralForModel ( app . models [ discriminator ] ) ;
335+ } else {
336+ plural = utils . pluralForModel ( relation . modelTo ) ;
337+ }
332338 var embeds = [ ] ;
333339
334340 // If relation is belongsTo then pk and fk are the other way around
0 commit comments