1

テンプレートでレンダリングしようとしていますmediaitemsが、次のpost厄介なコンソール エラーが発生します。

Uncaught TypeError: Object photo has no method '_create'

これらは私のモデルとフィクスチャデータです:

/**************************
 * Models
 **************************/

App.Store = DS.Store.extend({
    revision: 11,
    adapter: 'DS.FixtureAdapter'
});



App.Mediaitem = DS.Model.extend({
    type: DS.attr('string'),
    url: DS.attr('string'),

    post: DS.belongsTo('App.Post')
});



App.Post = DS.Model.extend({
    type: DS.attr('string'),
    title: DS.attr('string'),
    summary: DS.attr('string'),
    body: DS.attr('string'),
    date: DS.attr('date'),

    mediaitems: DS.hasMany('App.Mediaitem', {embedded:true})
});

App.Post.FIXTURES = [
    {
        id:"post-one", 
        type:"news", 
        title:"First Post", 
        summary:"Ipsum Lorem", 
        date:"2013-02-07T16:44:57",
        mediaitems:[{
            id:593,
            post_id:"post-one",
            type:'photo',
            url:'http://www.google.com'
        },
        {
            id:789,
            post_id:"post-one",
            type:'photo',
            url:'http://www.google.com'
        }]
    }, 
    {
        id:"post-two",
        type:"gallery", 
        title:"Second Post", 
        summary:"Lorem ipsum", 
        date:"2013-02-07T16:44:57",
        mediaitems:[{
            id:342,
            post_id:"post-two",
            type:'photo',
            url:'http://www.google.com'
        },
        {
            id:231,
            post_id:"post-two",
            type:'photo',
            url:'http://www.google.com'
        }]
    }
];

これは私のテンプレートコードです:

    <script type="text/x-handlebars" data-template-name="post">
        <div class="detail">
            {{#linkTo posts}}close{{/linkTo}}<br/>
            <h2>{{id}} - {{title}}</h2>
            <br/>
            {{#each mediaitem in mediaitems}}
                print something
            {{/each}}
        </div>
    </script>

誰かが私を助けることができますか?

4

1 に答える 1

1

FIXTURE アダプターは、少なくともリビジョン 11 では、埋め込み関係をサポートしていません。各モデルには、レコードを含む独自の FIXTURE 定義と、適切な子/親の ID を持つ関係が必要です。

App.Post.FIXTURES = [
{
    id:"post-one", 
    type:"news", 
    title:"First Post", 
    summary:"Ipsum Lorem", 
    date:"2013-02-07T16:44:57",
    mediaitems:['593','789']
}, 
{
    id:"post-two",
    type:"gallery", 
    title:"Second Post", 
    summary:"Lorem ipsum", 
    date:"2013-02-07T16:44:57",
    mediaitems:['342','231']
}];

App.Mediaitems.FIXTURES = [{
        id:342,
        post_id:"post-two",
        type:'photo',
        url:'http://www.google.com'
    },
    {
        id:231,
        post_id:"post-two",
        type:'photo',
        url:'http://www.google.com'
    },
    {
        id:593,
        post_id:"post-one",
        type:'photo',
        url:'http://www.google.com'
    },
    {
        id:789,
        post_id:"post-one",
        type:'photo',
        url:'http://www.google.com'
    }];
于 2013-02-12T19:16:37.263 に答える