Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何检查给定url中是否存在图像?_Ruby On Rails_Ruby_Cloudinary - Fatal编程技术网

Ruby on rails 如何检查给定url中是否存在图像?

Ruby on rails 如何检查给定url中是否存在图像?,ruby-on-rails,ruby,cloudinary,Ruby On Rails,Ruby,Cloudinary,这是cloudinary链接 http://res.cloudinary.com/dm1hql92i/raw/upload/c_fill,h_200,w_200/%7B%7D 我想用ruby检查该链接中是否存在图像。通过检查HTTP头中存在的内容类型,您就会知道这一点 请参考下面的代码片段 require 'net/http' require 'uri' def image_exists?(url) url = URI.parse(url) http = Net::HTTP.start

这是cloudinary链接

http://res.cloudinary.com/dm1hql92i/raw/upload/c_fill,h_200,w_200/%7B%7D


我想用ruby检查该链接中是否存在图像。

通过检查
HTTP头中存在的
内容类型
,您就会知道这一点

请参考下面的代码片段

require 'net/http'
require 'uri'

def image_exists?(url)
  url = URI.parse(url)
  http = Net::HTTP.start(url.host, url.port)

  http.head(url.request_uri)['Content-Type'].start_with? 'image'
end

url = "http://res.cloudinary.com/dm1hql92i/raw/upload/c_fill,h_200,w_200/%7B%7D"

image_exists?(url)
 => true

url = "http://guides.rubyonrails.org/getting_started.html"

image_exists?(url)
 => false 

出于某些原因,甘尼什的回答对我不起作用,以下是我的方法:

def image_exists?(url)
  response = {}
  uri = URI(url)
  Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    request = Net::HTTP::Get.new uri
    response = http.request request # Net::HTTPResponse object
  end
  return response.content_type.starts_with?("image")
end
请阅读并编辑您的问题以包含更多信息。到目前为止,您尝试了什么,犯了什么错误,在哪里遇到了问题?