ember.js - 从相关的 "belongs to"路由创建一条记录。断言失败: Assertion Failed: You can only add a 'group' record to this relationship

标签 ember.js ember-data ember-cli

我正在尝试从“组” route 创建一个新的“学生”。 “学生”属于该群体。一如既往,一旦您想做任何与非常简单的示例不同的事情,事情就会变得完全神秘 - 我会感谢一些帮助!

“学生”属于一个“组”。从“小组” route ,我想为该小组创建新学生。因此,在我的“groups/:group_ID”路线的 Controller 中,我有以下“saveStudent”操作...

        saveStudent: function(){
            var self = this;
            var classID = parseInt(this.get('model.id'));
            var name = this.get('studentName');    //studentName from input box

            var newStudent = this.store.createRecord('student', {
                name: name,
                group: classID
            });
            newStudent.save();
        }

失败并显示

Assertion Failed: You can only add a 'group' record to this relationship

如果我没有 kv 对:

group: classID

新学生已按预期创建,但当然我对关系一无所知。

我不知道如何在关系的背景下做到这一点。我是否需要自己更新“组”模型,或者 Ember 可以帮我处理这个问题吗?

我正在使用 Ember-CLI,以防有任何差异。谢谢

最佳答案

您应该使用记录,而不是 ID。假设 model 是组,您会这样做

   saveStudent: function(){
        var self = this;
        var group = this.get('model');
        var name = this.get('studentName');    //studentName from input box

        var newStudent = this.store.createRecord('student', {
            name: name,
            group: group
        });
        newStudent.save();
    }

假设您在学生组中拥有 hasMany,Ember-Data(请记住,Ember 和 Ember Data 是两种不同的产品)不会自动将学生连接到该组。您可以手动将其添加到该组(我建议在保存后)。

关于ember.js - 从相关的 "belongs to"路由创建一条记录。断言失败: Assertion Failed: You can only add a 'group' record to this relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331310/

相关文章:

javascript - Ember-Data: "mappings"是如何工作的

javascript - Ember.js REST 适配器使用 JSON 根(使用 ember-data)

javascript - 将多个存储数据传递给 Ember 组件

javascript - Ember CLI - 未捕获错误 : Could not find module ember?

javascript - 激活路由时不执行 ember 模型函数

javascript - Ember 对可枚举数组进行排序或向常规数组添加新对象

ember.js - 使用 EmberData 旁加载列出 "belongsTo"个对象

ember.js - 使用 Ember.PromiseProxyMixin 时如何冒泡拒绝的 Promise

ember.js - Ember-Cli:在 findAll() 查询前添加前缀

tomcat - Apache TOMCAT 上的 Ember-CLI