我有一个“团队”类,它可以有很多用户。
每次将用户添加到团队时,我都需要创建一个“从/到”关系。每个用户都可以评分并被他的所有队友评分。
这是我的云代码。我似乎无法让这个工作。
// add Team relations for every saved player
Parse.Cloud.afterSave("Team", function(request) {
// Team being saved
var team = request.object,
relation = team.relation("players"),
query = relation.query();
query.find({
// players on this Team
success: function(results) {
// all players on this Team
var i, j, player, teammate;
for (i = 0; i < results.length; i++) {
player = results[i];
// for each player add a new Rate relation (from/to)
for (j = 0; j < results.length; j++) {
teammate = results[i];
// if it's same player, escape relation
if (player == teammate) { continue; }
var Rate = Parse.Object.extend("Rate"),
rate = new Rate();
// create the relation from this player
var fromRelation = rate.relation('from');
fromRelation.add(player);
// to every other player on the team
var toRelation = rate.relation('to');
toRelation.add(teammate);
rate.save(null, {
success: function(_team) {
},
error: function(_team, error) {
}
});
}
}
response.success('rate relation success');
},
error: function(error) {
response.error('rate relation error');
}
});
});
将玩家添加到团队中效果很好,它在客户端运行。
最佳答案
您的类(class)是“Rates”,但您正在使用此代码:
var Rate = Parse.Object.extend("Rate"),
rate = new Rate();
改为
var Rate = Parse.Object.extend("Rates"),
rate = new Rate();
此外,请确保在添加关系之前创建了对象。
var Rate = Parse.Object.extend("Rate"),
rate = new Rate();
[.... MOVED BELOW .....}
rate.save(null, {
success: function(_team) {
[.... now create and save relations ...]
},
关于javascript - Parse.com Cloud Code 上的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33089992/