Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 余烬插入具有多个关系的记录-不工作_Ember.js_Ember Data - Fatal编程技术网

Ember.js 余烬插入具有多个关系的记录-不工作

Ember.js 余烬插入具有多个关系的记录-不工作,ember.js,ember-data,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.

我已经在这个问题上纠缠了两天了,一直无法在网上找到解决方案。我希望你们中的一些人能帮忙

我有以下型号:

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')
});
以及my 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);
                }
            });
编辑2: 下面是ruby中相应的数据模式

ActiveRecord::Schema.define(version: 20131230144053) do

  create_table "project_teams", force: true do |t|
    t.integer  "sde_effort"
    t.integer  "project_id"
    t.integer  "team_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  add_index "project_teams", ["project_id"], name: "index_project_teams_on_project_id"
  add_index "project_teams", ["team_id"], name: "index_project_teams_on_team_id"

  create_table "projects", force: true do |t|
    t.string   "name",           null: false
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "teams", force: true do |t|
    t.string   "name",       null: false
    t.datetime "created_at"
    t.datetime "updated_at"
  end

end

你能检查一下请求中发送的参数吗?sdeeds来自哪里?sdeeds是我从前端收集的一个值数组。它的长度与数组teamid相同。我基本上迭代了sdeHeads,并使用索引检索teamId和sdeEffort,因为两者的长度相同,并创建了一个新的ProjectTeam对象,该对象需要sdeEffort编号,project和teamI使用发送的请求及其相应的服务器响应更新了我的问题,并在Rubyth中包含DB模式。这可能是相关的:不,im returning@project。您是否认为问题可能是由于表定义引起的。因为您可以看到,对于ProjectTeam,我需要项目id和团队id,而从前端我发送jsonified对象。我不确定那是个错误还是应该是那样的。。
ActiveRecord::Schema.define(version: 20131230144053) do

  create_table "project_teams", force: true do |t|
    t.integer  "sde_effort"
    t.integer  "project_id"
    t.integer  "team_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  add_index "project_teams", ["project_id"], name: "index_project_teams_on_project_id"
  add_index "project_teams", ["team_id"], name: "index_project_teams_on_team_id"

  create_table "projects", force: true do |t|
    t.string   "name",           null: false
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "teams", force: true do |t|
    t.string   "name",       null: false
    t.datetime "created_at"
    t.datetime "updated_at"
  end

end