0

我有一个从 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

这在大多数情况下都可以正常工作,但有时会can't convert URI::Generic into String在 url 未按预期格式化时返回。在这种情况下,我只想放弃保存照片。我需要在方法中添加什么?

我尝试添加

rescue => e                                                      
  error_message = e.message                                      
  response_message = "Unknown error"                             
end

到基于此帖子的方法的末尾,但这会导致 SyntaxError:

unexpected keyword_rescue, expecting keyword_end

如何/在哪里正确使用救援方法?目前,该方法经常按原样工作,所以我很高兴它只是跳过任何未格式化的 url,而不是返回错误。感谢您帮助新手。

4

1 回答 1

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
于 2012-12-11T20:25:40.307 回答