0

使用Ember-2.6Rails-4.2.7后端JSONAPI-Resources-0.8.0.beta2 gem。

我注意到,有时当我尝试include添加其他资源时,它们会返回到我的有效负载中,但最终不会正确地出现在 Ember 存储中。事实证明,我的代码依赖于这些资源并没有按预期运行。

那么,为什么当我的有效负载包含所有这些额外资源时,它们最终不会出现在 Ember 存储中呢?为什么 Ember Data 不报告它未处理的有效负载元素?

4

1 回答 1

1

事实证明,我在 Ember-Data 模型中的关系声明使用的是驼峰命名法,但必须使用破折号声明

例如:

// Example Investment model (investment.js)
export default DS.Model.extend({
  // ...
  /**
   * The investment can have many transactions.
   */
  investmentTransactions: DS.hasMany('investmentTransactions'),
  // ...
});

...在大多数情况下都可以正常工作。但是,当尝试在查询中侧载(包括)我的数据时:

store.findRecord('investment', someId, { include: 'investment-transactions' });

...将带回投资负载以及所有投资交易,但是我的 Ember Data 模型看不到这些交易。为了解决这个问题,我的hasMany声明需要使用一个破折号的名称(这也适用于belongsTo您可能拥有的任何声明):

/**
 * The investment can have many transactions.
 */
investmentTransactions: DS.hasMany('investment-transactions'),
于 2016-09-16T14:48:14.843 回答