2013-08-19 3 views
5

Я не нашел удовлетворительного ответа в своем поиске, поэтому решил, что спрошу здесь.Создание дочерних записей в hasMany Отношения с Ember.Js

В настоящее время я использую Ember.Js, Ember-Data и Ember-Firebase-Adapter и пытаюсь создать приложение CRUD, которое создаст родительскую запись, а затем последующие дочерние записи в упомянутые родительские записи.

(обратите внимание, что DS.Firebase.LiveModel является Firebase адаптер эквивалент 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 Адрес: Comments Адрес: Post_Id Адрес: Post Адрес: Post Адрес: Post Адрес: Итак, у моего Post JSON есть массив Comment_Ids, который затем позволяет отображать их с сообщением?

Любая помощь или ссылки с хорошими примерами будут высоко оценены. Я знаю, что это относительно простого затруднительное положения еще я застрял на нем в течение некоторого времени: р

ответ

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

Надеется, что это помогает