класс ActionView::Renderer
Это главная точка входа для отрисовки. Она в основном делегирует работу другим объектам, таким как TemplateRenderer и PartialRenderer, которые фактически рендерят шаблон.
Метод Renderer будет анализировать параметры из метода render или render_body и рендерить частичный или полный шаблон на основе этих параметров. Объекты TemplateRenderer и PartialRenderer являются обёртками, которые выполняют всю настройку и логику, необходимую для рендеринга представления, и новый объект создаётся каждый раз, когда вызывается render.
Атрибуты
Публичные методы класса
# File actionview/lib/action_view/renderer/renderer.rb, line 16 def initialize(lookup_context) @lookup_context = lookup_context end
Публичные методы экземпляра
# File actionview/lib/action_view/renderer/renderer.rb, line 21
def render(context, options)
if options.key?(:partial)
render_partial(context, options)
else
render_template(context, options)
end
end Основная точка входа для рендеринга, используемая как в Action View, так и в Action Controller.
# File actionview/lib/action_view/renderer/renderer.rb, line 34
def render_body(context, options)
if options.key?(:partial)
[render_partial(context, options)]
else
StreamingTemplateRenderer.new(@lookup_context).render(context, options)
end
end Отрисовка, но возвращает корректный тело Rack. Если определены волокна (fibers), мы возвращаем потоковый (streaming) вывод, рендерящий шаблон по частям.
Обратите внимание, что частичные рендеры не поддерживаются с потоковой передачей, поэтому в таких случаях мы просто обернём их в массив.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.