The relational attributes in your models shouldn't be the Ids - they should refer to the other models. So define your models like this instead:
App.Box = DS.Model.extend({
owner: DS.attr('string'),
crayons: DS.hasMany('crayon') // <----
});
App.Crayon = DS.Model.extend({
color: DS.attr('string'),
box: DS.belongsTo('box', {async: true}) // <----
});
Then in your template, you're trying to reference model.crayonIds
but remember you're already within a loop, so you should be using item.crayons
. So like this:
<ul>
{{#each item in model}}
<li>#{{item.id}} | {{item.owner}}</li>
{{log item.crayons.length}}
<h5>Crayons</h5>
<ul>
{{#each record in item.crayons}} <!-- change is here -->
<li>#{{record.id}} | {{record.color}}</li>
{{/each}}
</ul>
{{/each}}
</ul>