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 に答える