如何在不访问网页的情况下获得控制器动作的渲染输出?

作为rails 2.3 app的部署过程的一部分,我想将错误页面的静态版本保存到公共文件夹。 如何在不访问网页的情况下获得控制器动作的渲染输出? 我知道它可以完成,因为function测试可以做到 – 如果我说的话

get :errors, :id => 404 

然后身体在@ response.body中。 我想我可以将代码复制出ActionController :: TestCase,但我希望有一种更简单的方法。

最后我刚刚进入ActionController :: TestCase,这就是我挖出来的:

 def get_content host, path, filename request = ActionController::Request.new 'HTTP_HOST' => host, 'REQUEST_URI' => path, 'REQUEST_METHOD' => 'GET', 'rack.input' => '', 'rack.url_scheme' => 'http' controller = ActionController::Routing::Routes.recognize(request).new response = ActionController::Response.new controller.process request, response return response.body end