Не удается открыть локальный хост, запустив приложение Ruby в Rails

Я пытаюсь запустить скрипт ruby ​​​​в приложении rails, используя системный вызов, например

def runSystemCall
    system("ruby /path/to/ruby/script/watir.rb localhost:3000/articles/14")
end

и watir.rb:

def watir(url)
    bb = Watir::Browser.new :chrome
    bb.goto "#{url[0]}"
end

watir(ARGV)

при запуске этого в приложении rails браузер открывался и оставался в состоянии Waiting for localhost... до ошибки

.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/protocol.rb:158:in `rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)

загрузил сайт localhost:3000/articles/14 открылся. Кто-нибудь знает, почему?

и при запуске этого в терминале

$ ruby /path/to/ruby/script/watir.rb localhost:3000/articles/14

открылся браузер и открылся сайт localhost:3000/articles/14 Этого я и ожидал.


person DarWcy    schedule 30.08.2014    source источник
comment
Вы раньше запускали свой сервер rails?   -  person Serjik    schedule 30.08.2014
comment
Да, сервер rails работает все время. при использовании другого URL-адреса, такого как www.google.com, вместо localhost:3000/articles/14, эта проблема не возникает   -  person DarWcy    schedule 30.08.2014
comment
Перейдите по этой ссылке stackoverflow.com/questions/152699 /   -  person Serjik    schedule 30.08.2014
comment
Я предполагаю, что Launchy предназначен для запуска браузера, такого как chrome или firefox, я хочу запустить скрипт .rb, в этот скрипт будет включен некоторый код watir, который откроет chrome, чтобы открыть localhost: 3000/articles/14   -  person DarWcy    schedule 30.08.2014


Ответы (1)


Ваш локальный сервер является однопоточным. Это означает, что он может обрабатывать только один запрос за раз. Если один локальный запрос хочет загрузить другую страницу с того же локального сервера, вам потребуется как минимум два локальных потока.

person spickermann    schedule 30.08.2014
comment
Да, я использую gem thin, потом тонкий старт -p 3001, все работает. - person DarWcy; 30.08.2014