класс ActionView::Renderer
Это основная точка входа для рендеринга. Она в основном делегирует задачу другим объектам, таким как TemplateRenderer и PartialRenderer, которые фактически рендерят шаблон.
Метод Renderer будет анализировать параметры из метода render или render_body и рендерить частичный или полный шаблон на основе этих параметров. Объекты TemplateRenderer и PartialRenderer являются обёртками, которые выполняют всю настройку и логику, необходимую для рендеринга представления, и новый объект создаётся каждый раз, когда вызывается render.
Атрибуты
Публичные методы класса
# File actionview/lib/action_view/renderer/renderer.rb, line 14 def initialize(lookup_context) @lookup_context = lookup_context end
Публичные методы экземпляра
Основная точка входа для рендеринга, общая для AV и AC.
# File actionview/lib/action_view/renderer/renderer.rb, line 19
def render(context, options)
if options.respond_to?(:permitted?) && !options.permitted?
raise ArgumentError, "render parameters are not permitted"
end
if options.key?(:partial)
render_partial(context, options)
else
render_template(context, options)
end
end Рендеринг, но возвращает корректное тело Rack. Если определены волокна, мы возвращаем потоковое тело, которое рендерит шаблон по частям.
Обратите внимание, что частичные шаблоны не поддерживаются для рендеринга потоковым методом, поэтому в таких случаях мы просто оборачиваем их в массив.
# File actionview/lib/action_view/renderer/renderer.rb, line 36
def render_body(context, options)
if options.key?(:partial)
[render_partial(context, options)]
else
StreamingTemplateRenderer.new(@lookup_context).render(context, options)
end
end
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.