Spec-Zone.ru › Ruby on Rails 4.1

класс 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) Показать исходный код

Основная точка входа для рендеринга, общая для 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
render_body(context, options) Показать исходный код

Рендеринг, но возвращает корректное тело 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.

Spec-Zone.ru

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