0

オブジェクトを保存した後、最初のオブジェクトとの関係を持つプライベート オブジェクトを作成したいと考えています。.afterSave メソッドを使用する必要があるのか​​、それとも最初のオブジェクト保存の成功コールバック内で何かを使用する必要があるのか​​ 知りたいです。

afterSave メソッドでそれを行うことになっている場合、デバッガーにアクセスせずにオブジェクトへの参照を取得する方法がわかりません-request.object が保存されたばかりのオブジェクトであると想定していますか? 言うまでもなく、このコードは機能していません。2つの間の関係ではなく、両方のオブジェクトを作成して保存しています。

何か案は?どうもありがとう。

Parse.Cloud.beforeSave("Subscription", function(request, response) {
 if (request.object.isNew()){
    request.object.set("url", Math.random().toString(36).substring(7));
    request.object.set("active", true);
    response.success();
 }
 else{
     response.error("Couldn't save Subscription for some reason. Sorry");
 }
});

Parse.Cloud.afterSave("Subscription", function(request,response){
//Add SubscriptionLog object to Subscription

var SubscriptionLog = Parse.Object.extend("SubscriptionLog");
var subscriptionLog = new SubscriptionLog();

subscriptionLog.save(null, {
    success: function(savedSL){
        //create relation of subscriptionLog to subscription
        var relation = request.object.relation("subscriptionLog");
        relation.add(subscriptionLog);
        relation.save();
    },
    error: function(error){
        console.log(error);
    }
  });
})
4

2 に答える 2

1

SubscriptionLog ごとに 1 つのサブスクリプションしかないように見えるため、SubscriptionLog にはリレーションではなくオブジェクト ポインターが必要なだけだと思います。objectID をポインターに割り当てるだけです。

beforeSave が response.success() を実行する前は、Subscription の objectID はありません。したがって、少なくとも、response.success() の後にこれを行う必要があります。ただし、objectID が beforeSave で使用できるかどうかを確認したことはありませんが、その呼び出しの後です。afterSave 関数で割り当てを行います。

于 2013-04-26T00:36:35.113 に答える
0

これには afterSave フックを使用する必要があります。保存したばかりのオブジェクトはrequest.object.

afterSave フックの形式が間違っています。「応答」オブジェクトがありません。正しい形式は次のとおりです。

Parse.Cloud.afterSave("Subscription", function(request) {
  // ...
});
于 2013-04-25T22:52:41.967 に答える