2014-08-30 8 views
1

Я пытаюсь запустить рубиновый скрипт в рельсах приложение, используя системный вызов, какНе удается открыть локальный, запустив 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 Вот что я ожидал.

+0

Раньше вы запускали серверы рельсов? – Serjik

+0

Да, сервер rails работает все время. при использовании других URL-адресов, таких как www.google.com, а не localhost: 3000/articles/14, этот вопрос не случается – DarWcy

+0

Следуйте по этой ссылке http://stackoverflow.com/questions/152699/open-the-default-browser-in -ruby – Serjik

ответ

1

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

+0

Да, Я использую камень тонкий, затем тонкий старт -p 3001 он работает. – DarWcy

Смежные вопросы