захват вывода действия контроллера - PullRequest
2 голосов
/ 15 августа 2011

Мне нужно иметь возможность фиксировать выходные данные действия контроллера в виде строки - можно подумать, что это будет относительно просто, но я не могу заставить работать любой из методов render / render_to_string.

Мне нужно иметь возможность хранить ссылку на контроллер и действие, а затем иметь возможность получать его выходные данные в процессе (на самом деле печать на стороне сервера)

Есть идеи - спасибо?

Использование типа render / render_to в виде строки (в модели)

view = ActionView::Base.new(ActionController::Base.view_paths)
view.extend ApplicationHelper
output = view.render(:action => '<someaction>', :controller => '<somecontroller')

это приводит к;

/Users/---/gems/activesupport-3.0.5/lib/active_support/whiny_nil.rb:48:in `method_missing': undefined method `formats' for nil:NilClass (NoMethodError)

если я попытаюсь использовать render_to_string, я получу;

undefined method `render_to_string' for #<ActionView::Base:0x0000010400c760> (NoMethodError)

1 Ответ

1 голос
/ 15 августа 2011

Почему вы не используете скручиваемость?

curl http://localhost:3000/controller/action

Используя curl gem, вы можете вызвать его даже из консоли:

require 'curl'
page = CURL.new.get('http://localhost:3000/controller/action')

UPDATE

С консоли рельсов:

app.get('/controller/action')
app.response.body
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...