Ruby 未初始化常量HTTPSuccess(NameError)

Ruby 未初始化常量HTTPSuccess(NameError),ruby,ruby-1.8.7,Ruby,Ruby 1.8.7,我试图从本教程中学习一些ruby http请求-响应代码- 迄今为止的代码- require "net/http" require "uri" uri = URI.parse("http://api.random.com") http = Net::HTTP.new(uri.host, uri.port) # Continuing our example from above request = Net::HTTP::Get.new("/search?question=somequest

我试图从本教程中学习一些ruby http请求-响应代码-

迄今为止的代码-

require "net/http"
require "uri"

uri = URI.parse("http://api.random.com")
http = Net::HTTP.new(uri.host, uri.port)

# Continuing our example from above

request = Net::HTTP::Get.new("/search?question=somequestion")
response = http.request(request)

# response.code
# response.body

case response
when HTTPSuccess
  response.body
when HTTPRedirect
  follow_redirect(response) # you would need to implement this method
else
  raise StandardError, "Something went wrong :("
end
错误-

Test.rb:16: uninitialized constant HTTPSuccess (NameError)

我看到了这个问题上唯一的堆栈溢出帖子。没有帮助。为什么会发生这种情况?

之所以发生这种情况,是因为
HTTPSuccess
尚未初始化。尝试改用
Net::HTTPSuccess
(和
Net::HTTPRedirection


另外,将您的case语句更改为
case response.class
。在when语句中,您正在检查类是否相等。

根据本文档(),可能需要在其前面加上Net::(例如,
when Net::HTTPSuccess
)?@PlatinumAzure-正确。我必须使用名称空间。没有名称空间怎么做?现在,我得到了这个错误-
24:uninitialized constant Net::HTTPRedirect(namererror)