我正在尝试使用系统调用在 Rails 应用程序中运行 ruby 脚本,例如
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
这正是我所期望的。
最佳答案
您的本地服务器是单线程的。这意味着它一次只能处理一个请求。如果一个本地请求想要从同一个本地服务器加载另一个页面,那么您至少需要两个本地线程。
关于ruby-on-rails - 无法通过在 Rails 应用程序中运行 Ruby 打开本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25578502/