Ember-data,hasMany关系,加载子集合,嵌套路由

时间:2012-04-27 13:50:10

标签: ruby-on-rails ruby-on-rails-3 ember.js ember-data

我需要使用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的非常长的网址:

GET : /comments?ids%all_ids_appended_here

当然它不起作用,如果我有一千条评论,网址非常长。

是否可以获得与rails的嵌套路由模型匹配的请求? :

 GET /posts/post_id/comments

插件路由管理器https://github.com/ghempton/ember-routemanager似乎就是这种路由。我可以将它与ember-data一起使用吗?

由于

1 个答案:

答案 0 :(得分:1)

如果您只指定评论ID,我不确定嵌入式是您想要的。期望在帖子模型的JSON表示中传递完整的评论对象。