我有一系列评论和一系列帖子。
App.Router.map(function () {
this.resource("posts", {
path: "/posts"
});
this.resource("post", {
path: "/:post_id"
}, function () {
this.resource("comments", {
path: "/comments"
});
});
});
App.Post = Ember.Model.extend({
id: attr(),
name: attr(),
comments: Ember.hasMany("App.Comment", {
key: 'comments'
})
if embedded = comments: Ember.hasMany("App.Comment", {
key: 'comments',
embedded: true
})
});
App.Post.url = "/posts";
App.Comment = Ember.Model.extend({
id: attr(),
message: attr(),
post: Ember.belongsTo('App.Post', {
key: 'post'
})
});
我怎么能:
comment_id
{/ 1}}。如果非嵌入式,我可以让comment_ids: []
进入评论,但是很难将post_id
添加到帖子中。
答案 0 :(得分:1)
使用create()
方法。
// get a post instance to insert a new comment to.
var post = App.Post.create(); // or App.Post.find()
// insert a new comment.
var comment = post.get('comments').create();
comment.message = "Test Poster";
// since you are using embedded relationship,
// no need to save the comment, just save the post.
post.save();
如果您使用的是非嵌入式评论,请将您的关系更改为{ embedded: false }
,只是不要忘记在评论中调用保存。
// if non-embedded
comment.save();
希望它有所帮助!
答案 1 :(得分:0)
您必须push
将新comment
comments
收集到post
上的var post = this.get('post');
var comments = post.get('comments');
comments.pushObject(comment);
comment.save();
post.save();
集合中。
{{1}}
这是一个总体思路的JSBin:http://jsbin.com/OnUXEti/12/edit
答案 2 :(得分:0)
如果这有助于任何人 - 我在ember模型上提出修复问题pull request diff on github
的拉取请求