javascript - Parse.com Cloud Code 上的多对多关系

标签 javascript ios web-applications parse-platform parse-cloud-code

我有一个“团队”类,它可以有很多用户。

每次将用户添加到团队时,我都需要创建一个“从/到”关系。每个用户都可以评分并被他的所有队友评分。

这是我的云代码。我似乎无法让这个工作。

// 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');
            }
        });

});

将玩家添加到团队中效果很好,它在客户端运行。

数据浏览器上的类设置: Team Class Rate Class

最佳答案

您的类(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/

相关文章:

javascript - d3嵌套选择教程不渲染表格

javascript - 如何用 jQuery 包裹 2 个元素?

ios - 指定初始化程序缺少对父类(super class)的指定初始化程序的 super 调用

javascript - 这里的信息气泡 map 不起作用

javascript - 试图改变点击宽度

iOS apple-touch-icon 仅适用于一个 URL

iOS8/iPhone6+ XPC 崩溃

mysql - HTTP 500 - 内部服务器错误 - 部署示例 Tomcat Web 应用程序

php - XSS 攻击预防

c# - 无法确定某个 UITestControl 是否存在于我的网络应用程序中