2013-08-19 5 views
5

検索で満足のいく答えが見つからないので、ここで質問しました。Ember.JsとのhasManyリレーションシップの子レコードの作成

私は現在、Ember.Js、Ember-Data、およびEmber-Firebase-Adapterを使用していて、親レコードを作成し、次に親レコードを作成するCRUDアプリケーションを作成しようとしています。

私のモデルは、一般的なポスト/コメントの種類であることを変更されている。ここ

(DS.Firebase.LiveModelがDS.Model/Ember.ModelのFirebaseアダプタと同等であることに注意してください)

App.Post = DS.Firebase.LiveModel.extend({ 
     name: DS.attr('string'), 
     body: DS.attr('string'), 
     date: DS.attr('date'), 
     comments: DS.hasMany('App.Comment', {embedded: 'always'}) 
    }); 

    App.Comment = DS.Firebase.LiveModel.extend({ 
     message: DS.attr('string'), 
     timestamp: DS.attr('string'), 
     post: DS.belongsTo('App.Post', {key: "post_id"}) 
    }); 

(?= postpost_idが必要があります)

そして、ここではCommentsを作成するための私のルートです:

App.PostsCommentRoute = Ember.Route.extend({ 
     setupController: function(controller) { 
     controller.set('content', App.Comment.find()); 
     } 

    }); 

ここPostsCommentRouteのための私のコントローラです:

App.PostsCommentController = Ember.ObjectController.extend({ 
     newMessage: null, 
     newTimestamp: null, 

     saveComment: function() { 
     App.Pbp.createRecord({ 
      message: this.get('newMessage'), 
      timestamp: this.get('newTimestamp') 
     }) 


      App.store.commit(); 
      this.set('newMessage', null); 
      this.set('newTimestamp', null); 


     } 
    }); 

私はシリアライザが欠落することができると思いますか?そして、私はaddArrayでいくつかのことを読んだことがありますが、プラグインしようとしたことは実りあるものではありませんでした。私のコメントはうまくいきますが、とにかくJSONの投稿には関連付けられていません。

作成したCommentsは関連するPost_Idを見つけ、作成したときにPostに関連付けられますか?だから私のPost JSONはComment_Idsの配列を持っています。それで、投稿と一緒に表示することができますか?

いずれのヘルプやリンクも良い例があれば幸いです。私は今、いくつかの時間のためにそれに引っかかってきたこれはまだ比較的単純な苦境を知っている:P

答えて

4

あなたがしようとすると何ができるか、この

post = App.Post.find(1); 
post.get('comments').pushObject(App.Comment.createRecord({})); //This will add a new comment to your post and set the post_id as the post id 
App.store.commit() 

はそれが

を役に立てば幸いれます
関連する問題