我有一个从网址上传图片的简单方法。
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
这在大多数情况下都可以正常工作,但如果网址未按预期格式化,有时会返回can't convert URI::Generic into String
。我只是想在这种情况下放弃保存照片。我需要在方法中添加什么?
我尝试添加
rescue => e
error_message = e.message
response_message = "Unknown error"
end
到基于此post的方法的结尾,但这会导致语法错误:
unexpected keyword_rescue, expecting keyword_end
我/如何正确使用救援方法?目前,该方法通常工作得很好,所以我很高兴它只是跳过任何未格式化的URL,而不是返回错误。 谢谢你帮助新手。
答案 0 :(得分:1)
试试这个:
def photo_from_url(url)
begin
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
rescue => e
puts "error"
end
end