使用Ember ActiveModelAdapter和Rails进行侧载

时间:2014-12-29 16:36:28

标签: ruby-on-rails json ember.js relationships activemodel

我有两种模式:

user: [ 
  firstName: DS.attr('string'),
  lastName: DS.attr('string'),
  animals: DS.hasMany('animal', { async: true })
]

animal: [ 
  name: DS.attr('string'),
  user: DS.belongsTo('user', { async: true })
]

当我看到动物路线一切正常时,轨道返回的JSON就像:

{"animals":[{"id":1,"name":"Wiskey","user_id":3}

和Ember为用户/ 3调用GET。

当我试图找到所有用户时,我有这个json:

{"users":[{"id":3,"firstName":"Bob","lastName":"Marley","animal_ids":[4,8,14]}

但没有GET要求动物4,8和14。 问题是什么?我使用的适配器是ActiveModelAdapter。

谢谢!

2 个答案:

答案 0 :(得分:1)

看看活动模型序列化器gem(here)如何让rails在一次调用中从rails返回用户和动物

关于它here

还有一个非常好的轨道广播

答案 1 :(得分:0)

您必须尝试访问Ember Data的animals关系以请求其他记录。如果它没有显示在模板中或在别处访问,那么就不需要向服务器发出请求。

它可能没有发出请求的另一个原因是,如果对服务器的另一次调用已经导致Ember Data将这些记录加载到商店中。如果它已经保留了那些记录,那么除非明确要求,否则它不会再次尝试加载它们。