4

我的 rails 应用程序中有一个方法可以保存来自 og:image 标记 url 的图像。

def photo_from_url(url)
  if !Nokogiri::HTML(open(url)).css("meta[property='og:image']").blank?
    photo_url = Nokogiri::HTML(open(url)).css("meta[property='og:image']").first.attributes["content"]
    self.photo = URI.parse(photo_url)
    self.save
  end
end

这在大多数情况下都有效,除非图像 url 恰好包含一个以 0 开头的数字,例如http://ad009cdnb.website.com/rest-of-url

在这些情况下,我得到一个非法的八进制数字错误。

如何防止该方法认为任何以零开头的数字都是以 8 为底的?

4

2 回答 2

2

这不是一个答案。对不起,错误地使用了系统。无法找到如何使用 HTTP 放置字符串而不将其更改为链接作为注释。

URI.parse 工作正常:

URI.parse("http://ad009cdnb.website.com/rest-of-url").to_s
=> "http://ad009cdnb.website.com/rest-of-url"

正如大家所说,我们真的需要一个堆栈跟踪或其他东西来帮助你。您很可能希望将 URL 保存为字符串,而不是数据库中的对象。

于 2013-04-12T20:31:05.117 回答
1

大家好,我发布了这个问题,但我无法再重现这个问题。

由于这不再是一个问题,我认为最好的做法是结束这个问题。但是,我看到有些人的评论被投票赞成(他们提出了很好的观点,例如保存为字符串而不是对象)。如果问题被关闭,他们会名誉扫地吗?

我很感谢大家的意见,不想让任何人感到不安。对于这种情况,什么是 SO 协议?

于 2013-04-12T21:01:28.250 回答