如何避免嵌套迭代中的重复条目

时间:2011-09-27 11:01:02

标签: ruby-on-rails ruby iterator amazon-s3

如何重写此内容以避免重复输入?

images.each do |img|
  thumbs.each do |th|
    html << link_to(image_tag("#{th.url}"), "#{img.url}")
  end
end

我想将缩略图th.url打包成原始图片的链接img.url

向上:
我正在使用fog gem从S3获取imagesthumbs 它们是具有不同前缀的文件: storage.directories.get(bucket, :prefix => "thumbs").files

2 个答案:

答案 0 :(得分:1)

为什么不以某种方式关联图片和缩略图?

因此,如果您的图片被称为image_name.jpg,则可以将缩略图设为thumbs/image_name.jpg

如果您的名字未连接,那么为什么不在应用程序中将它们关联起来,以便使用图像和缩略图名称的关联数组?

my_images = [ "image_1.jpg"=>"aflafffff_thumb.jpg", "image_2.jpg"->"zofofroro_thumb.jpg" ] 

通过这两种方式,您只需找到每张图片的相应缩略图。

答案 1 :(得分:0)

你正在遍历两个集合(图像和拇指) - 因此重复。猜测你的图像和拇指对象是以某种方式链接的......

e.g。拇指可用做像image.thumb

images.each do |image|
  html << link_to(image_tag(image.thumb.url), image.url)
end

通过迭代图像集合,您将无法获得重复项。