我使用 commit eaa1123 (ember) 和508479d (ember-data) 来构建 JS 文件。
我从我的 Rails 后端返回了以下 JSON,它是使用active_model_serializers (0.6.0) 生成的:
{
"posts": [
{
"id": 408,
"title": "Lorem Ipsum",
"body": "In at quo tempora provident nemo.",
"comments": [
{
"id": 956,
"body": "Quo incidunt eum dolorem."
},
...
]
}
]
}
和以下 Ember 模型:
App.Post = DS.Model.extend({
title: DS.attr('string'),
body: DS.attr('string'),
comments: DS.hasMany('App.Comment', {
embedded: true
})
});
App.Comment = DS.Model.extend({
body: DS.attr('string'),
post: DS.belongsTo('App.Post')
});
一切看起来都很正常:
post = App.Post.find(408);
post.get('title')
// => "Lorem Ipsum"
但是,我似乎无法获得评论:
comments = post.get('comments')
comments.get('firstObject') instanceof App.Comment
// => true
comments.forEach(function(comment) {
console.log(comment.get('body'))
})
//=> undefined
当我使用:
comments.content
我得到一个包含对象的数组,所以:
comments.content[0]
//=> { body: "Quo incidunt eum dolorem.", id: 956 }
但这不是我所期望的。
这似乎很明显,所以我一定做错了什么。作为副作用:目前我无法以简单的方式在模板中呈现我的评论,所以我希望有人可以帮助我解决这个问题。
提前致谢。