класс 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) render_to_object(context, options).body end
Основная точка входа для рендеринга, используемая Action View и Action Controller.
# File actionview/lib/action_view/renderer/renderer.rb, line 38
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–2020 David Heinemeier Hansson
Licensed under the MIT License.