В Rails, как я могу получить содержимое страницы без HTTP-запроса? - PullRequest
0 голосов
/ 11 января 2010

Это может быть действительно очевидно, но в rails, как я могу получить содержимое страницы без выполнения HTTP-запроса?

т.е. я хочу получить содержимое любой страницы, которую генерирует мое приложение rails, вскрипт на том же сервере.Это, конечно, тривиально с HTTP-запросом, но как иначе получить содержимое страницы?

Это то, что я делаю сейчас, и это прекрасно работает:

require 'open-uri'

contents = open("http://localhost/path_to_my_page").read # but I really want to get rid of the overhead of the HTTP request

Мне нужночтобы иметь возможность сделать это из скрипта в приложении rails, а не из контроллера (например, с render_to_string)

Ответы [ 3 ]

3 голосов
/ 11 января 2010

Так вы получаете содержимое страницы в консоли. Это может работать для вас:

require 'action_controller/integration'
app = ActionController::Integration::Session.new;
app.get('/path_to_your_page')
puts app.response.body
1 голос
/ 11 января 2010

В вашем контроллере вы можете позвонить render_to_string вместо render, и страница будет возвращена вместо отправки в браузер.
Аргументы обоих методов одинаковы, поэтому вам нужно указать, какой контроллер и какое действие вы хотите выполнить.

0 голосов
/ 11 января 2010

Почему бы не использовать erb напрямую? См. этот вопрос для более подробной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...