2013-03-25 21 views
4

我有一个方法在我的Rails应用程序中保存了来自og:image标记url的图像。如何绕过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的?

+3

您确定要将照片保存为URI :: HTTP吗?不应该只是一个字符串? – Frans

+1

我最终在这里结束了。我上面的评论可能并不完全相关,但现在它不太合理。它失败的方法是什么? 'photo =','URI.parse'或'save'? – Frans

+0

Hi @Frans。似乎我不能重现错误....男人,现在我真的很困惑之前,我得到一个非法的八进制数字,但现在相同的链接工作正常...我会尽力重现错误,如果我不能,我会关闭这个问题... – umezo

回答

2

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

URI.parse正常工作:

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

为大家说,我们真的需要一个堆栈跟踪或什么来帮助你。最有可能的是,您将希望将URL保存为字符串,而不是数据库中的对象。

1

嗨,大家好,我发布了这个问题,但我不能再重现这个问题。

由于这不再是一个问题,我认为最好的行动方案是关闭这个问题。但是,我发现有些人被投票赞成他们的评论(他们提出了诸如将字符串保存为字符串而不是对象)。如果问题已经结束,他们会被怀疑吗?

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

+0

我不是一个很棒的贡献者,如此错误的人回答,但http://meta.stackexchange.com/questions/10582/what-is-a-closed-question – fotanus