0

Rails BackendでEmberを使用しています

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 

私は3つのモデルを持っています

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 の新しいインスタンスを作成したい

こんな感じにしてみました

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 とアクターは正しく読み込まれます

4

1 に答える 1

1

belongsTo関係の側面を忘れているようです。追加

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

あなたのApp.Actorモデルに。

于 2013-05-03T16:55:02.403 に答える