2014-09-13 2 views
0

У меня есть родительский объект «Листинг» (подумайте о недвижимости), который может иметь несколько дочерних объектов «Изображение».Parse Cloud Code - запросить дочерний элемент с указателем на родителя

Я пытаюсь реализовать функцию облачного кода, которая маркирует все дочерние объекты как архивные, когда я архивирую их родителя.

По какой-то причине результат запроса всегда пуст. Я не понимаю, почему. Моя ошибка «Ошибка: изображение не определена» появляется каждый раз.

Класс изображения имеет указатель на Листинг, но нет никакого отношения к листингу в изображение.

Parse.Cloud.afterSave("Listing", function(request) { 

    Parse.Cloud.useMasterKey(); 

    // Handle archiving. If a listing is marked as archived, mark the image as archived also. 

    query = new Parse.Query("Image"); 
    query.equalTo("listing", request.object); 

    query.first({ 
     success: function(image) { 

      if (typeof image != "undefined") { 
       image.archived(request.object.get("archived")); 
       image.save(); 

       console.log("Done"); 
      } 
      else { 
       console.log("Error: image undefined."); 
      } 
     }, 
     error: function(error) { 
      console.error("Got an error " + error.code + " : " + error.message); 
     }, 
    }); 
); 

Любая помощь оценивается.

ответ

0

Я был в состоянии получить эту работу, используя следующие:

Parse.Cloud.afterSave("Listing", function(request) { 

    Parse.Cloud.useMasterKey(); 

    // Handle archiving. If a listing is marked as archived, mark the image as archived also. 

    query = new Parse.Query("Image"); 
    query.equalTo("listing", request.object); 

    query.find({ 
     success: function(images) { 

      if (typeof images != "undefined") { 

       for (i = 0 ; i < images.length; i++) { 

        var theImage = images[i]; 
        theImage.set("archived", request.object.get("archived")); 
        theImage.save(); 
       } 

       console.log("Done"); 
      } 
      else { 
       console.log("Error: image undefined."); 
      } 
     }, 
     error: function(error) { 
      console.error("Got an error " + error.code + " : " + error.message); 
     }, 
    }); 
);