作为rails 2.3 app的部署过程的一部分,我想将错误页面的静态版本保存到公共文件夹。如何在不访问网页的情况下获得控制器动作的渲染输出?我知道它可以完成,因为功能测试可以做到 - 如果我说
get :errors, :id => 404
然后身体在@ response.body中。我想我可以从ActionController :: TestCase中复制代码,但我希望有一种更简单的方法。
答案 0 :(得分:1)
最后我刚刚进入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