Spec-Zone.ru › Ruby on Rails 4.2

класс ActionView::Renderer

Родитель:
Объект

Это основная точка входа для рендеринга. Она в основном делегирует задачу другим объектам, таким как TemplateRenderer и PartialRenderer, которые фактически рендерят шаблон.

Класс Renderer будет анализировать параметры из метода render или render_body и рендерить частичный шаблон или шаблон в зависимости от параметров. Объекты TemplateRenderer и PartialRenderer являются оболочками, которые выполняют всю необходимую настройку и логику для рендеринга представления, и новый объект создаётся каждый раз, когда вызывается render.

Атрибуты

lookup_context[RW]

Публичные методы класса

new(lookup_context) Показать исходный код
# File actionview/lib/action_view/renderer/renderer.rb, line 14
def initialize(lookup_context)
  @lookup_context = lookup_context
end

Публичные методы экземпляров

render(context, options) Показать исходный код
# 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.

render_body(context, options) Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API