2015-04-01 47 views
1

我在向连接表中插入数据时出错,我不知道我是否正确地做了这件事。 这是我的两个模型,有多对多的关联。Sails.js如何向连接表中插入数据(多对多)

Commit.js:

module.exports = { 
    schema: true, 
    attributes: { 
    idCommit : { 
     type: 'integer', 
     autoIncrement: true, 
     primaryKey: true, 
     unique: true 
    }, 
    revision : { 
    type: 'integer', 
    required: true 
    }, 
    issues: { 
     collection: 'issue', 
     via: 'commits', 
     dominant: true 
    } 
    } 
}; 

Issue.js:

module.exports = { 
    schema: true, 
    attributes: { 
    idIssue : { 
     type: 'integer', 
     autoIncrement: true, 
     primaryKey: true, 
     unique: true 
    }, 
    description: { 
    type: 'string', 
    required: true 
    }, 
    commits: { 
     collection: 'commit', 
     via: 'issues' 
    } 
    } 
}; 

当我尝试插入问题纳入提交这样:

Commit.create(commit).exec(function(err,created){ 
    if (err) { 
    console.log(err); 
    } 
    else { 
    created.issues.add(issues); 
    created.save(function(err) {}); 
    } 
}); 

我犯被创建,我的问题已创建,但没有链接,因此它们之间的连接表保持空白。我在哪里弄错了?

+0

吗? – 2015-04-01 21:57:44

+0

风帆房间也是一个很好的寻找帮助的地方:https://gitter.im/balderdashy/sails – 2015-04-01 21:58:04

+0

我正在使用mySql适配器。 – user2663041 2015-04-02 17:49:26

回答

1

从你的代码,它看起来像你想添加的问题数组,尝试单独做的关联,就像他们在Many-to-Many docs

Commit.create(commit).exec(function(err,created){ 
    if (err) { 
    console.log(err); 
    } 
    else { 

    issues.forEach(function(issue, index){ 
     created.issues.add(issue); 
    }) 

    created.save(function(err) {}); 
    } 
}); 
您使用的适配器
+1

只需使用'created.add(issues);'即可简化。是的,它处理数组。 – givanse 2015-05-31 04:50:39