Ember插入具有多种关系的记录 - 不起作用

时间:2014-01-03 11:09:59

标签: ember.js ember-data

我已经坚持这个问题已经两天了,并且无法在线找到解决方案。我希望你们中的一些人能够提供帮助。

我有以下型号:

App.Project = DS.Model.extend({
    name: DS.attr('string'),
    project_teams: DS.hasMany('projectTeam')
});

App.ProjectTeam = DS.Model.extend({
    sde_effort: DS.attr('number'),
    project: DS.belongsTo('project'),
    team: DS.belongsTo('team')
});

App.Team = DS.Model.extend({
    project_teams: DS.hasMany('projectTeam'),
    name: DS.attr('string')
});

我的projectsController中的以下代码:

var project = store.createRecord('project', {
                name: projectName
            });

            project.save().then(function(projectRecord){
                var teamHookerUpper = function(teamId, sdeEffort, idx){
                    store.find('team', teamId).then(function(team){
                        var project_team = store.createRecord('project_team', {
                            project: projectRecord,
                            sde_effort: sdeEffort,
                            team: team
                        });
                        console.log('project team has been created');
                        project_team.save().then(function(pt){
                            projectTeamIds.push(pt.get('id'));
                            if(idx == sdeHeads.length - 1){
                                console.log(projectRecord);
                                projectRecord.set('project_teams', projectTeamIds);
                                projectRecord.save();
                            }
                        });

                    });
                }

                for(var i = 0; i < sdeHeads.length; i++){
                    teamHookerUpper(teamIds[i], sdeHeads[i], i);
                }
            });

逻辑如下:

从前端的txt获取值并创建新的Project。创建项目时,选择与该项目关联的所有teamIds和sdeEfforts(元数据值),创建多个TeamProject对象并将它们链接到新创建的Project。与ProjectTeam关联的Team值只是一个id,我可以通过调用DB来检索对象。

目前已成功创建Project对象,并且成功创建了多个ProjectTeam对象,但在添加ProjectTeams时,project和{{1}的值是空的。此外,您会看到每个team对象都会创建一个数组推送。一旦我遍历所有teamIds(从前端),我将ProjectTeam数组添加到ProjectTeams并更新项目。

但是,在检查ajax调用时,我发现Project请求已发送到相应的网址,但是没有任何数据被发送(PUT

我已经被困在这两天了,并且已经耗尽了我设法找到的所有资源。我希望社区能够帮助我解决这个问题。

还有另一种解决方法吗?我是否已经注意到这种方法,我没有考虑其他方法?请给我一些指导,非常感谢。

编辑:-----

这里是ajax调用及其各自的响应:

status code 204

编辑2:

这是ruby中相应的数据模式

{"project":{"name":"fghfg"}} <- post Project
{"project_teams":[],"project":{"id":3,"name":"fghfg", "created_at":"2014-01-03T12:11:28.372Z","updated_at":"2014-01-03T12:11:28.372Z","project_teams":[]}} <- response

{"project_team":{"sde_effort":34,"project":"3","team":"1"}} <- post ProjectTeam
{"projects":[],"teams":[],"project_team":{"id":2,"sde_effort":34,"created_at":"2014-01-03T12:11:28.494Z","updated_at":"2014-01-03T12:11:28.494Z","project":null,"team":null}} <- response

{"project_teams":[],"team":{"id":1,"name":"Team 1","created_at":"2014-01-03T12:10:42.787Z","updated_at":"2014-01-03T12:10:42.787Z","project_teams":[]}} <- response for GET teams/1

{"project":{"name":"fghfg"}} <- PUT project. No response for this call :/

0 个答案:

没有答案