класс 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
Публичные методы экземпляров
# 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 Основная точка входа для рендеринга, используемая AV и AC.
# 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 Рендеринг, но возвращает допустимый Rack тело. Если определены волокна, мы возвращаем потоковое тело, которое рендерит шаблон по частям.
Обратите внимание, что частичные шаблоны не поддерживают рендеринг с потоковой передачей, поэтому в таких случаях мы просто оборачиваем их в массив.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.