我的rails应用程序中有一个方法可以从og:image标记网址中保存图像。
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
这在大多数情况下都有效,除非图片网址恰好包含一个以0开头的数字,例如http://ad009cdnb.website.com/rest-of-url
在这些情况下,我收到了非法的八进制数字错误。
如何防止该方法认为以零开头的任何数字都是base-8?
答案 0 :(得分:2)
这不是答案。很抱歉错误地使用了系统。无法在链接中找到如何使用HTTP放置字符串作为注释。
URI.parse正常工作:
URI.parse("http://ad009cdnb.website.com/rest-of-url").to_s
=> "http://ad009cdnb.website.com/rest-of-url"
正如大家所说,我们真的需要一个堆栈跟踪或其他东西来帮助你。而且很可能您希望将URL保存为字符串,而不是数据库中的对象。
答案 1 :(得分:1)
大家好我发布了这个问题,但我再也无法重现这个问题了。
由于这不再是一个问题,我认为最好的做法是结束这个问题。但是,我看到有些人已经投票赞成他们的评论(他们提出了好处,比如保存为字符串而不是对象)。如果问题结束,他们会被抹黑吗?
我很感激每个人的意见,并且不想让任何人感到不安。对于这种情况,SO协议是什么?