我已经坚持这个问题已经两天了,并且无法在线找到解决方案。我希望你们中的一些人能够提供帮助。
我有以下型号:
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
这是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 :/