尝试在Ruby on Rails中打开URL时出错

And*_*ndy 13 url ruby-on-rails

环境:Ruby 1.9.2,Rails 3.0.3,Ubuntu

当我尝试使用以下命令打开URL时:

open("http://www.cnn.com")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Errno::ENOENT: No such file or directory - http://www.cnn.com
    from (irb):9:in `initialize'
    from (irb):9:in `open'
    from (irb):9
Run Code Online (Sandbox Code Playgroud)

(这是一个难以搜索的主题).这在irb和我的应用程序中都会发生.它曾经在Ruby 1.8.7和Rails 2.3.4下工作,但似乎有些东西发生了变化.

blo*_*err 24

如果我尝试,我可以重现错误

open('http://www.google.com')
Run Code Online (Sandbox Code Playgroud)

我会收到这个错误:`initialize':没有这样的文件或目录 - http://www.google.com(Errno :: ENOENT)

相反,我在ruby 1.9.2中要求'open-uri'并且它有效 -

require 'open-uri'

url = URI.parse('http://www.google.com')
open(url) do |http|
  response = http.read
  puts "response: #{response.inspect}"
end
Run Code Online (Sandbox Code Playgroud)