123456789_123456789_123456789_123456789_123456789_

Module: AbstractController::Rendering

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
::ActionController::API, ::ActionController::Base, ::ActionMailer::Base, ::ActionView::TestCase::TestController, Rails::ApplicationController, ::Rails::HealthController, Rails::InfoController, Rails::MailersController, Rails::WelcomeController
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Defined in: actionpack/lib/abstract_controller/rendering.rb

Constant Summary

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

Instance Attribute Summary

Instance Method Summary

::ActionView::ViewPaths - Included

#any_templates?,
#append_view_path

Append a path to the list of view paths for the current LookupContext.

#details_for_lookup,
#lookup_context

LookupContext is the object responsible for holding all information required for looking up templates, i.e. view paths and details.

#prepend_view_path

Prepend a path to the list of view paths for the current LookupContext.

#template_exists?

Instance Method Details

#_normalize_args(action = nil, options = {}) (private)

Normalize args by converting render "foo" to render action: "foo" and render "foo/bar" to render file: "foo/bar".

[ GitHub ]

  
# File 'actionpack/lib/abstract_controller/rendering.rb', line 73

def _normalize_args(action = nil, options = {}) # :doc:
  if action.respond_to?(:permitted?)
    if action.permitted?
      action
    else
      raise ArgumentError, "render parameters are not permitted"
    end
  elsif action.is_a?(Hash)
    action
  else
    options
  end
end

#_normalize_options(options) (private)

Normalize options.

[ GitHub ]

  
# File 'actionpack/lib/abstract_controller/rendering.rb', line 88

def _normalize_options(options) # :doc:
  options
end

#_process_options(options) (private)

Process extra options.

[ GitHub ]

  
# File 'actionpack/lib/abstract_controller/rendering.rb', line 93

def _process_options(options) # :doc:
  options
end

#render(*args, &block)

Normalizes arguments and options, and then delegates to render_to_body and sticks the result in self.response_body.

Supported options depend on the underlying #render_to_body implementation.

[ GitHub ]

  
# File 'actionpack/lib/abstract_controller/rendering.rb', line 25

def render(*args, &block)
  options = _normalize_render(*args, &block)
  rendered_body = render_to_body(options)
  if options[:html]
    _set_html_content_type
  else
    _set_rendered_content_type rendered_format
  end
  _set_vary_header
  self.response_body = rendered_body
end

#render_to_body(options = {})

Performs the actual template rendering.

[ GitHub ]

  
# File 'actionpack/lib/abstract_controller/rendering.rb', line 49

def render_to_body(options = {})
end

#render_to_string(*args, &block)

Similar to #render, but only returns the rendered template as a string, instead of setting self.response_body.

If a component extends the semantics of response_body (as ::ActionController extends it to be anything that responds to the method each), this method needs to be overridden in order to still return a string.

[ GitHub ]

  
# File 'actionpack/lib/abstract_controller/rendering.rb', line 43

def render_to_string(*args, &block)
  options = _normalize_render(*args, &block)
  render_to_body(options)
end

#rendered_format

Returns Content-Type of rendered content.

[ GitHub ]

  
# File 'actionpack/lib/abstract_controller/rendering.rb', line 53

def rendered_format
  Mime[:text]
end

#view_assigns

This method should return a hash with assigns. You can overwrite this configuration per controller.

[ GitHub ]

  
# File 'actionpack/lib/abstract_controller/rendering.rb', line 61

def view_assigns
  variables = instance_variables - _protected_ivars

  variables.each_with_object({}) do |name, hash|
    hash[name.slice(1, name.length)] = instance_variable_get(name)
  end
end