【发布时间】:2016-07-08 17:38:37
【问题描述】:
我无法访问此数组中的项目,我不知道为什么。
我正在使用一个名为 FastImage 的 Gem,它获取图像 URL 并返回其属性以抓取网页并返回它找到的所有图像的宽度和高度。
- url = open("http://google.com/").read
- imgs = URI.extract(url).select{|img| img[/\.(?:png|jpe?g)\b/]}.each do |img|
= FastImage.size(img)
这会打印每个相应数组中的维度,但尝试使用 [] 通过索引访问项目会返回上述错误。
【问题讨论】:
-
如果这会打印尺寸,那么它显然不会在此处引发错误(尽管您的代码中存在使其无法打印尺寸的漏洞,因为并非所有选定的东西实际上都是图像名称)。请显示代码的哪一部分引发了错误。
-
它并不专门抓取图像标签,这不是我担心的。像这样在数组末尾添加索引:[0] 会导致错误。
-
像如何一样添加它?你的解释不清楚。
-
[0]本身不是索引,它是一个单元素列表。请显示生成错误的完整代码。你要在[0]后面附加什么? -
如果您尝试访问
FastImage.size(img)[0],那么您当然会收到错误消息。 “它并不专门抓取图像标签,这不是我担心的。” - 你应该是:对于每个非图像,FastImage.size返回nil,而nil[0]是一个错误。
标签: ruby-on-rails arrays ruby indexing rubygems