2010-11-24 8 views
0

Ich bin ein Array mit 10 verschiedenen Amazon AWS_Objects zurückgegeben. Ich möchte jeden von ihnen durchlaufen und sie in meiner Datenbank speichern, aber manchmal gibt die Amazon API leere Arrays zurück. Zum Beispiel könnte die title-Methode erfolgreich funktionieren, aber die medium_image-Methode gibt möglicherweise nil zurück, wodurch die Schleife unterbrochen wird. Ich verstehe, dass ich hier eine bedingte Funktion verwenden muss, ich bin nur nicht sicher, wie man es auf eine Weise tut, die jedes Mal funktioniert. (wäre auch schön, wenn ich einfach das leere Array überspringen und die Daten weiter speichern könnte).Überspringen leeres Element beim Durchlaufen von Array mit Ruby

Ich habe versucht, während, wenn, wenn - Schwierigkeiten mit der richtigen Kombination zu kommen.

Vielen Dank für jede Hilfe!

James

Antwort

1

Zuerst die leeren Elemente im Array überspringen Sie nutzen könnten:

items.compact.each do |aws_object| 

Der kompakte Aufruf des Arrays mit allen Null-Einträge entfernt angezeigt werden können. Und wenn Sie die Attribute testen müssen Sie etwas tun:

@amazonproduct.image_url = aws_object.medium_image.url.to_s unless aws_object.medium_image.nil? 
0

Sie sollten in den Schlaufen für zwei Bedingungen prüfen ... ist array.nil oder array.empty

Wenn eine dieser auswertet auf true , weiter zum nächsten Datensatz ...

Verwandte Themen