I'm trying to run the following snippet from a brand new rails project in the console:
uri = URI.parse("http://25.media.tumblr.com/avatar_279ec8ee3427_64.png")
data = open(uri)
This er开发者_JAVA百科rors with:
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>'
I'm running on Rails 3.0.4 and Ruby 1.9.2. Any ideas on how to fix this? Thanks!
open()
will accept both a string and a URI object.
io = open("http://...")
io = open(URI.parse("http://..."))
The error you described will happen if open-uri
is not included.
require 'open-uri'
open-uri wants a string.
data = open("http://25.media.tumblr.com/avatar_279ec8ee3427_64.png")
精彩评论