保存belongsTo关系失败

时间:2016-09-26 13:55:54

标签: ember.js ember-data

我在保存新记录方面遇到了问题,因为belongsTo关系并未分配给新创建的记录(承诺Promise)。

无论如何,我的后端是轨道,这些是必需的参数:

Parameters: {"photo"=>{"title"=>"Hello word", "image"=>"someimage.jpg", "user_id"=>nil}}

正如您所见,即使我的会话成功返回登录用户ID

,user_id也为零

我正在使用ActiveModelAdapter。

灰烬控制器

  let photo = this.store.createRecord('photo', {
    title: this.get("newModel.title"),
    image: this.get("newModel.image")
  });

  this.get('store').findRecord('user', this.get('session.data.authenticated.userId')).then(function(user){
    photo.set('user', user);
  });

  photo.save();

这失败了,因为通过阅读余烬文档,你不能将一个诺言指定为一种关系(?!?!?)。从ember端返回没有错误,但是用户的belongs_to关系看起来像这样

user <DS.PromiseObject:ember891>

我似乎也注意到Ember不断添加user_id参数,尽管没有值存在

请注意,由于后端的状态验证,我无法在没有user_id的情况下保存记录,并且它不是删除这些记录的解决方案。

任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

试试这个,

       this.get('store').findRecord('user', this.get('session.data.authenticated.userId'),{ reload: true }).then(function(user) {
            photo.set('user', user);
            photo.save();
        });