Как получить обработанный вывод действия контроллера, не посещая веб-страницу? - PullRequest
1 голос
/ 05 ноября 2010

В рамках процесса развертывания нашего приложения rails 2.3 я хотел бы сохранить статические версии наших страниц с ошибками в общей папке.Как получить обработанный вывод действия контроллера, не посещая веб-страницу?Я знаю, что это можно сделать, потому что функциональные тесты делают это - если я скажу

get :errors, :id => 404

, то тело находится в @ response.body.Я полагаю, я мог бы просто скопировать код из ActionController :: TestCase, но я надеюсь, что есть более простой способ сделать это.

1 Ответ

1 голос
/ 08 ноября 2010

В итоге я просто зашел в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...