【发布时间】:2017-07-19 18:45:55
【问题描述】:
我有一个 Rails 后端,按照 JSON API 标准 (jsonapi-resources gem) 提供数据。我有两个模型:联系人和电话号码。
class Contact < ApplicationRecord
has_many :phone_numbers
end
class PhoneNumber < ApplicationRecord
belongs_to :contact
end
这是 API 端点的 JSON 响应。
{
"data": [
{
"id": "6",
"type": "phone-numbers",
"links": {
"self": "http://localhost:3000/phone-numbers/6"
},
"attributes": {
"name": "byeworld",
"phone-number": "9212098"
},
"relationships": {
"contact": {
"links": {
"self": "http://localhost:3000/phone-numbers/6/relationships/contact",
"related": "http://localhost:3000/phone-numbers/6/contact"
}
}
}
}
]
}
这些是我的 Ember 模型:
联系方式:
import DS from 'ember-data';
export default DS.Model.extend({
nameFirst: DS.attr('string'),
nameLast: DS.attr('string'),
email: DS.attr('string'),
twitter: DS.attr('string'),
phoneNumbers: DS.hasMany('phone-number', {async: true, inverse: 'contact'})
});
电话号码:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
phoneNumber: DS.attr('string'),
contact: DS.belongsTo('contact', {async: true, inverse: 'phoneNumbers'})
});
这是我的路由处理程序:
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.findRecord('contact', params.contact_id, {include: "phone-numbers"});
},
(...)
});
我无法通过以下方式访问模板上联系人的电话号码:
{{#each model.phoneNumbers as |phone|}}
{{phone.name}}
{{/each}}
此外,电话号码的数据存在于 ember 控制台中。我错过了什么?
【问题讨论】:
-
你的 ember-data 版本是多少?
-
"ember-data": "~2.14.3"
标签: ruby-on-rails json ember.js