J'ai un modèle Styles (Garments) et un modèle Images et un un à plusieurs Styles < = Relation images.La mise à jour des relations à l'aide du script écrase les relations pour tous les enregistrements, sauf les plus récents
J'ai un widget jQuery Cloudinary pour télécharger des images, puis j'essaie de mettre à jour la relation Images avec l'URL des images. L'intention est alors d'afficher ces images dans un tableau.
Cependant, lorsque je mets à jour la relation en utilisant mon code, elle enregistre uniquement le StyleCode le plus récent par rapport à la relation.
Donc, si je sauve une image, puis un autre, la table d'image va de ceci:
Image URL Style
http://abc 1234
à cette
Image URL Style
http://abc <blank>
http://xyz 1234
Ma première question est, comment la relation fonctionne? Il semble qu'il repose sur mon StyleCode pour garder la relation d'enregistrement. J'aurais pensé que ça aurait été _key ..... ???? Deuxièmement, y a-t-il quelque chose que vous pouvez repérer dans mon code qui pourrait écraser le StyleCode précédent?
code côté serveur
function saveImageToStyle(images, styleCode) {
var imgs = [];
images.forEach(function(image)
{
var imageRecord = app.models.Images.newRecord();
imageRecord.ThumbnailURL = image.thumbnail_url;
imageRecord.ImageURL = image.url;
imageRecord.Path = image.path;
imageRecord.ImageName = image.original_filename;
imgs.push(imageRecord);
});
app.saveRecords(imgs);
var query = app.models.Styles.newQuery();
query.filters.StyleCode._equals = styleCode; // is it this???
var styleRecord = query.run()[0];
styleRecord.Images = imgs;
app.saveRecords([styleRecord]);
}
code côté client
function saveStyleImages(images) {
var styleCode = app.datasources.Styles.item.StyleCode; // is there a better way to get the current StyleCode?
var status = app.pages.StyleEdit.descendants.Status;
google.script.run
.withFailureHandler(function(error) {
status.text = error.message;
})
.withSuccessHandler(function(result) {
status.text = images + "success";
})
.saveImageToStyle(images, styleCode);
}
Merci! Je l'ai fait avec styleRecord.Images.push (imgs) :) – Samuurai
Le correctif officiel d'un employé de Google a dit que vous devez le faire de cette façon: pour (var i = 0; i
Samuurai