2013-05-03 4 views
0

Я работаю с Эмбер с Rails BackendКак создать запись с hasMany и принадлежит ассоциации? [EmberJS]

Ember.VERSION : 1.0.0-rc.3 ember.js:349 
Handlebars.VERSION : 1.0.0-rc.3 ember.js:349 
jQuery.VERSION : 1.9.1 

У меня есть три модели

App.SocialNetwork = DS.Model.extend({ 
    name: DS.attr('string'), 
    actors: DS.hasMany('App.Actor'), 
    relations: DS.hasMany('App.Relation'), 
}); 

App.Actor = DS.Model.extend({ 
    name: DS.attr('string'), 
    x: DS.attr('number'), 
    y: DS.attr('number'), 
    social_network: DS.belongsTo('App.SocialNetwork'), 
    relations: DS.hasMany('App.Relation'), 
    isSelected: function() { 
    return false; 
    }.property(), 
}); 

App.Relation = DS.Model.extend({ 
    name: DS.attr('string'), 
    actors: DS.hasMany('App.Actor'), 
    social_network: DS.belongsTo('App.SocialNetwork'), 
}); 

И Внутри моего RelationsController я хочу, чтобы создать новый экземпляр Relation

I попытался сделать это следующим образом

App.RelationsController = Ember.ArrayController.extend({ 
    currentRelation: null, 
    add: function() { 
    // get the selected actors 
    var actors = this.get('socialNetwork.actors').toArray().filter(function (element) { 
     return element.get("isSelected") == true; 
    }); 
    // create the new relation with those actors 
    var newRelation = App.Relation.createRecord({ 
     actors: actors, 
     name: "New Relation", 
    }); 
    this.set('currentRelation', newRelation); 
    this.get('content').pushObject(newRelation); 
    this.get('store').commit(); 
    }, 
}); 

Но отношение не сохраняется, и я отлаживаю новую созданную запись, и у нее нет ни действующих лиц, ни социальных сетей.

Что я делаю неправильно или не делаю здесь?

Заранее спасибо за вашу помощь

PS: Кстати, SocialNetwork и актеры правильно загрузить

+0

Вы видели [это] (http://stackoverflow.com/a/14324532/54364)? – MilkyWayJoe

+0

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

+0

Решение, которое, наконец, сработало для меня, я нашел его на http://stackoverflow.com/questions/15683273/save-foreign-key -to-other-model-with-hasmany-relation/15709988 # 15709988 – fespinozacast

ответ

1

Похоже, ты забыл belongsTo сторону отношений. Добавить

relation: DS.belongsTo('App.Relation')

к вашей App.Actor модели.

+0

Я добавил его, но он все еще не работает – fespinozacast

+0

в любом случае является отношением MN в ember между Relation и Actor – fespinozacast

Смежные вопросы