2010-11-24 3 views
0

10 개의 서로 다른 Amazon aws_object가있는 배열이 반환됩니다. 나는 각각을 반복하여 내 DB에 저장하려고하지만 때로는 Amazon API가 빈 배열을 반환합니다. 예를 들어, title 메소드가 성공적으로 작동 할 수도 있지만, medium_image 메소드는 nil을 리턴하여 루프를 깨뜨릴 수 있습니다. 조건부 함수를 사용해야한다는 것을 이해합니다. 매번 작동하는 방식으로 어떻게해야하는지 잘 모르겠습니다. (빈 배열을 건너 뛸 수 있으면 데이터를 저장하는 것도 좋을 것입니다.)Ruby를 사용하여 Array를 반복 할 때 빈 요소 건너 뛰기

올바른 조합으로 문제가 발생하는 경우를 제외하고는 사용해 본 적이 있습니다.

도움 주셔서 감사합니다.

답변

1

먼저

제임스, 당신이 사용할 수있는 배열의 비어있는 항목을 건너 뛸 수 :

items.compact.each do |aws_object| 

컴팩트 전화가 모두 제거 전무 항목과 배열을 반환합니다. 이 속성을 테스트해야하는 경우 그리고 당신은 같은 것을 할 수 있습니다 : 하나는 array.nil 또는 array.empty

입니다 ...

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

당신은 루프의 두 가지 조건을 확인해야한다을 true로이 평가됩니다의 , 다음 레코드로 이동 ...