在Rails中使用NetHTTP来命中Rails

时间:2013-06-06 19:09:05

标签: ruby-on-rails ruby net-http

我们有一个非常独特的用例,我们希望Rails控制器使用Net :: HTTP访问Rails应用程序中的路由。可以这样做吗?我尝试这样做时,我目前正在收到超时。当uri是一个单独的Rails应用程序时,当前代码有效,但当uri属于应用程序本身时则不行。这是当前控制器操作的要点:

def export_data
  uri = URI("http://localhost:3000")
  @data = JSON.parse( Net::HTTP.get(uri) )

  respond_to do |format|
    ...
  end
end

忘掉我们为什么要这样做。为什么这不起作用?是否可以进行修改以使其工作?提前谢谢!

1 个答案:

答案 0 :(得分:8)

它不起作用,因为您没有使用多线程服务器。您的请求即将进入并阻止服务器,直到它完成。在此期间,您向本地主机发出了未被处理的请求。

简单的解决方案?试试美洲狮。其他简单的解决方案,旋转两个rails实例,连接到第二个实例。