2

コメントのコレクションと投稿のコレクションがあります。

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'
  })
});

どうすればよいですか:

  1. 新しい埋め込みコメントを作成します。
  2. 埋め込まれていないコメントを作成し、その作成をPost モデルに追加comment_idします。comment_ids: []

post_id埋め込まれていない場合はコメントに入力できますがcomment_id、投稿に追加するのに苦労しています。

4

3 に答える 3

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 }します。コメントに対して save を呼び出すことを忘れないでください。

// if non-embedded
comment.save();

それが役に立てば幸い!

于 2013-09-16T00:47:14.797 に答える
0

これが誰かに役立つ場合-私はember-modelにプルリクエストを入れ、githubのプルリクエストの差分の問題を修正しました

于 2014-01-15T15:17:36.240 に答える
0

上のコレクションにpush新しく追加する必要があります。commentcommentspost

var post = this.get('post');
var comments = post.get('comments');
comments.pushObject(comment);
comment.save();
post.save();

一般的なアイデアを持つJSBinは次のとおりです。http://jsbin.com/OnUXEti/12/edit

于 2013-09-15T04:43:53.363 に答える