2013-08-19 14 views
5

Ich habe keine zufriedenstellende Antwort durch meine Suche gefunden, also dachte ich, ich würde hier fragen.Erstellen von Child-Records in hasMany Beziehung mit Ember.Js

Ich verwende derzeit Ember.Js, Ember-Daten und Ember-Firebase-Adapter und versuche, eine CRUD-Anwendung zu erstellen, die einen übergeordneten Datensatz erstellen wird, und dann nachfolgende untergeordnete Datensätze zu den übergeordneten Datensätze.

(beachten Sie, dass DS.Firebase.LiveModel die Firebase Adapter Äquivalent DS.Model/Ember.Model ist)

Hier sind meine Modelle, veränderte allgemeine Beitrag/Kommentar Typen sein

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

(? Sollte meine post_id = post)

Und hier ist meine Strecke Comments für die Erstellung von:

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

    }); 

Hier ist mein Controller für die 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); 


     } 
    }); 

Ich denke, dass ich den Serializer können fehlt? Und ich habe einige Dinge auf addArray gelesen, aber die Dinge, die ich versuchte zu verbinden, erwiesen sich als nicht fruchtbar. Weil meine Kommentare in Ordnung sind, aber sie sind in meinem JSON sowieso nicht mit dem Post verbunden.

Gibt es eine Möglichkeit für die erstellte Comments die zugehörige Post_Id zu finden und dann mit dieser Post zu verknüpfen, wenn sie erstellt wird? Also meine Post JSON hat ein Array von Comment_Ids, die dann ermöglicht sie mit dem Post angezeigt werden?

Jede Hilfe oder Links mit guten Beispielen würden sehr geschätzt werden. Ich weiß, dass dies ein relativ einfaches Dilemma ist noch habe ich es seit einiger Zeit stecken geblieben: p

Antwort

4

Was können Sie versuchen und tun, ist dies

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() 

Hoffe, es hilft

Verwandte Themen