2013-08-19 38 views
5

我還沒有通過搜索找到滿意的答案,所以我想我會在這裏問。在hasMany中創建子記錄與Ember.Js的關係

我正在使用Ember.Js,Ember-Data和Ember-Firebase-Adapter,並試圖創建一個CRUD應用程序,該應用程序將創建一個父記錄,然後創建一個後續的子記錄到所述父記錄。

(注意DS.Firebase.LiveModel是火力地堡適配器相當於DS.Model/Ember.Model的)

這裏有我的模式,改變爲通用的帖子/評論類型

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

(?如若我post_id = post

這裏是我創建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() 

希望它可以幫助

相關問題