3

ember-data とそのデフォルトの REST アダプターを使用して、Rails バックエンドからモデルをロードする必要があります。私は別のモデルと多くの関係を持つモデルを持っています:

App.Post = DS.Model.extend({
    title: DS.attr("String");
    comments: DS.hasMany('App.Comment', {keys: 'post_ids', embbeded: true});
})

App.Post = DS.Model.extend({
    body: DS.attr("String");
    post: DS.belongsTo('App.Post');
})

サーバーから返される JSON モデルは次のようになります。

{
  title: "a title",
  comment_ids: [1,2,3,4]
}

効率上の理由から、関連するコメントを必ずしもロードせずに、最初にすべての投稿をロードする必要があります。私はこれを行います

App.store.findAll('App.Post');

そして、特定の投稿を選択すると、すべてのコメントを読み込む必要があります。ember-data のドキュメントでは、呼び出すだけでよいと言われています

a_specific_post.get('comments')

これを行うと、すべてのコメント ID を含む非常に長い URL が取得されます。

GET : /comments?ids%all_ids_appended_here

もちろんうまくいかず、何千ものコメントがあると、URL が非常に長くなります。

rails のネストされたルーティングモデルに一致するリクエストを取得することは可能ですか? :

 GET /posts/post_id/comments

プラグイン route-manager https://github.com/ghempton/ember-routemanagerは、この種のルーティングのようです。ember-data で使用できますか?

ありがとう

4

1 に答える 1

1

コメントIDのみを指定している場合、埋め込みが必要かどうかはわかりません。投稿モデルの JSON 表現で完全なコメント オブジェクトが渡されることを期待しています。

于 2012-05-01T21:12:40.357 に答える