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 で使用できますか?
ありがとう