1

Post と Tag など、2 つのエンティティ間の多対多の関係を可能にする Ember.js アプリを構築しています。

App.Post = DS.Model.extend({
    title: DS.attr("string"),
    body: DS.attr("string"),
    tags: DS.hasMany("App.Tag")
});

App.Tag = DS.Model.extend({
    name: DS.attr("string"),
    posts: DS.hasMany("App.Post")
});

新しいレコードを永続化するときに、Ember に多対多の関係をシリアル化させるのに苦労しています。これは私が現在やっている方法です:

// Create the post
post = store.createRecord(App.Post, {title: "Example", body: "Lorem ipsum..."});

// Create the tag
tag = store.createRecord(App.Tag, {name: "my-tag"});

// Add the tag to the post
post.get("tags").addObject(tag);

// Add the post to the tag
tag.get("posts").addObject(post);

// Save
store.commit();

新しいレコードは DOM に表示され、API に POST されますが、シリアル化にはそれらの間の関係は含まれません。たとえば、投稿のシリアル化は次のようになります。

title=Example&body=Lorem+ipsum...

関連付けられているタグも含まれていると思います。

どこが間違っていますか?

4

2 に答える 2

1

デフォルトでは、リレーションシップをシリアライザーに埋め込むように構成した場合、リレーションシップは JSON の配列にhasManyシリアライズされるだけです。_ids詳細については、この回答をご覧ください。

于 2013-03-01T17:01:45.457 に答える