これは私にとって何度も発生しているようで、対処方法についてアドバイスが必要でした. 私はコーヒースクリプトで例を書いているので、私を許してください。
App.Post = DS.Model.extend
title: DS.attr('string')
author: DS.belongsTo('App.Author')
App.Author = DS.Model.extend
name: DS.attr('string')
posts: DS.hasMany('App.Post')
著者と関連する投稿を同時に作成したい。
author = App.Author.createRecord({name: 'waldo'});
author.get('posts').createRecord({title: 'how to do the Ember'})
代わりに
post = App.Post.createRecord({author: author})
問題は、サーバー上の Post モデルが author_id の存在を検証することです。そのため、 を呼び出すとstore.commit()
、author
正常に送信されますpost
が、拒否されます。post.get('author.id') //=> undefined
更新: Author モデルには、少なくとも 1 つの投稿を作成する必要があるというサーバー上の検証もあるためstore.commit()
、投稿を作成する前に呼び出すことはできません。
トランザクションを台無しにして失敗しました。私はそれをいじり続けますが、これは将来の参考のためにS / Oで答えた良い質問のようです.