2016-10-18 2 views
0

Когда я использую это все в порядке:рубин open_uri ошибка NoMethodError: неопределенный метод `полоса» для 10: Fixnum

html = open("http://"+self.url).read 

Но когда я добавить агента пользователя:

html = open("http://"+self.url, "User-Agent" => "Ruby", 'read_timeout' => 10).read 

я получаю:

NoMethodError: undefined method `strip' for 10:Fixnum 
    from /Users/a_user/.rbenv/versions/2.2.3/lib/ruby/2.2.0/net/http/header.rb:17:in `block in initialize_http_header' 

Что здесь не так?

ответ

2

Pass 10, как строка не целочисленное значение

html = open("http://"+self.url, "User-Agent" => "Ruby", 'read_timeout' => '10').read 

OpenURI пытается запустить strip от значения

-1

Кажется, он возражает ключ является строкой. Попробуйте включить «read_timeout» в символ:

html = open("http://"+self.url, "User-Agent" => "Ruby", read_timeout: 10).read 

Я мог бы повторить свою ошибку с «read_timeout», но изменить его на символ фиксированной его здесь в любом случае.