Ruby on rails Rails和OpenURI
我试图在控制台中运行来自全新rails项目的以下代码段:Ruby on rails Rails和OpenURI,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图在控制台中运行来自全新rails项目的以下代码段: uri = URI.parse("http://25.media.tumblr.com/avatar_279ec8ee3427_64.png") data = open(uri) 这将导致以下错误: TypeError: can't convert URI::HTTP into String from (irb):24:in `open' from (irb):24 from /Users/kevin/.rvm/
uri = URI.parse("http://25.media.tumblr.com/avatar_279ec8ee3427_64.png")
data = open(uri)
这将导致以下错误:
TypeError: can't convert URI::HTTP into String
from (irb):24:in `open'
from (irb):24
from /Users/kevin/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands/console.rb:44:in `start'
from /Users/kevin/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands/console.rb:8:in `start'
from /Users/kevin/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
TypeError:无法将URI::HTTP转换为字符串
发件人(irb):24:在“开放”中
起始(irb):24
from/Users/kevin/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands/console.rb:44:in'start'
from/Users/kevin/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands/console.rb:8:in'start'
from/Users/kevin/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands.rb:23:in`'
来自脚本/rails:6:in'require'
来自脚本/rails:6:in`'
我运行的是Rails 3.0.4和Ruby 1.9.2。有没有办法解决这个问题?谢谢 打开uri需要一个字符串
data = open("http://25.media.tumblr.com/avatar_279ec8ee3427_64.png")
open()
将同时接受字符串和URI对象
io = open("http://...")
io = open(URI.parse("http://..."))
如果未包括openuri
,则会发生您描述的错误
require 'open-uri'
您可能应该将
.read
添加到您的open
,例如:data=open()http://www.example.com/“)。读取
否则您将有一个可以读取的IO句柄,但没有内容。如果您仅使用
打开而未收到任何内容,则只创建了一个文件句柄:data.class#=>Tempfile
。您必须读取
文件句柄才能实际接收任何内容。