Javascript Ember store.push与hasMany不兼容';更新模板?

Javascript Ember store.push与hasMany不兼容';更新模板?,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,假设以下模型: App.User = DS.Model.extend( email: DS.attr('string') session_users: DS.hasMany('sessionUser') ) App.SessionUser = DS.Model.extend( user: DS.belongsTo('user') state: DS.attr('string') session: DS.belongsTo('session') ) App.Session

假设以下模型

App.User = DS.Model.extend(
  email: DS.attr('string')
  session_users: DS.hasMany('sessionUser')
)

App.SessionUser = DS.Model.extend(
  user: DS.belongsTo('user')
  state: DS.attr('string')
  session: DS.belongsTo('session')
)

App.Session = DS.Model.extend(
  title: DS.attr('string')
  session_users: DS.hasMany('sessionUser')
)
路线会话\u route.js.coffee

App.SessionRoute = Ember.Route.extend(
  model: (params) ->
    this.store.find('session', params.id)
)
以及以下会话.hbs模板:

{{#each session_users}}
    {{state}}
{{/each}}
我已连接到WebSocket流,当创建新的SessionUser时,我会收到通知。
这里会话\u controller.js.coffee测试推送一些有效负载:

payload =
    id: 20
    user: controller.store.getById('user', 2)
    session: controller.store.getById('session', 2)
    state: 'confirmed'
  controller.store.push('sessionUser', payload)
使用Ember Inspector(Chrome扩展),我可以看到会话用户已被推送,并且存在于具有正确关系的存储中,但模板未更新。

当使用store.createRecord时,模板实际上正在更新,但我想使用push/pushPayload,以便使用现有的序列化程序。

我很确定这是一个已知的错误。我们对websocket执行类似的操作:在推送负载以创建记录之后,我们手动调用
addObject
将其添加到hasMany关系中,例如

var comment = store.push('comment', payload);
post.get('comments').addObject(comment);

您的路由看起来似乎只查找单个会话,但您正在数组上迭代。n/m,我看到您的会话用户是会话下的一个变量。如果在推送之后立即调用find,它是否加载了它?find函数将返回推送的会话用户,但模板仍然相同,为什么只有createRecord会影响模板?如果在用户和会话的有效负载中只使用ID,这是相同的吗?