だから私は(私が思うに)Ember-dataに関する一般的な問題を抱えています。次の状況に適応するためにアダプターを適切にカスタマイズする方法を考えています。
次の 2 つのオブジェクトがあるPost
とします。Tag
を呼び出すと、ingApp.Post.find()
によってすべての投稿が返されます。見つかったのはです。これはいい。GET
api.com/posts
App.Post.find(1)
api.com/posts/1
App.Tag.find()
で利用可能なすべてのタグを返しますapi.com/tags
。App.Tag.find(1)
正しい URL で適切なタグを返します。また良い。
App.Post.createRecord({...})
それを介して新しい投稿を作成するPOST
と、正しいURLになります。の作成も同様Tags
です。これまでのところ、すべてがダンディです。
Tags
on aPost
は、その投稿の「上」にあるため埋め込まれています。
App.Adapter.map("App.Post", {
tags: {embedded: 'always'}
});
読み込み中、Ember-data はすべてを正しく処理し、私は今でも非常に満足しています。
だから私の問題は、 aTag
に a を追加することから来ていPost
ます。サーバーがサーバー側のすべてのことを行う場所にタグオブジェクトを配置したいPUT
と思います。POST
api.com/posts/1/tags
現在、
{embedded: 'always'}
設定が設定された Ember-data は、オブジェクト全体(新しいオブジェクトを含む) を JSON 文字列化された文字列として送信PUT
します。api.com/posts/1
Post
Tag
{embedded: 'always'}
構成が設定されていない場合、ember-data はPUT
オブジェクトにタグを付けようとし、パラメーターを含むオブジェクトをapi.com/tags
送信して、サーバー側がサーバー側のすべてのことを実行できるようにします。Tag
post_id
サーバーがそのように設定されていないため、1 を実行したくありません。PUT/POST/GET
s onapi.com/tags
は実際にはアプリケーションの「タグ管理」部分であり、実際には投稿にタグを適用するものではないため、2 は実行したくありません。この動作の別の例は、Github v3 API for Labels & Issues にあります。
ember-dataでこれを処理する方法を知っている人はいますか? ありがとう!