2010-11-05 20 views
1

作爲我們的rails 2.3應用程序的部署過程的一部分,我想將我們的錯誤頁面的靜態版本保存到公用文件夾中。如何在不訪問網頁的情況下獲取控制器操作的呈現輸出?我知道這是可以做到,因爲功能測試做到這一點 - 如果我說如何在不訪問網頁的情況下獲取控制器操作的呈現輸出?

get :errors, :id => 404 

然後身體是@ response.body。我想我可以從ActionController :: TestCase中複製代碼,但我希望有一個更簡單的方法來完成它。

+0

我不知道如果頁面緩存會在這裏工作等先打生成的頁面,或者是你擔心404意味着你的應用程序非常糟糕,所以你不能依賴Rails堆棧? – 2010-11-05 19:03:50

+0

是的 - 如果所有的雜種都很忙,我想展示一些東西。 – Simon 2010-11-06 09:57:30

回答

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 
相關問題