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::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 75

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 90

def _normalize_options(options) # :doc:
  options
end

#_process_options(options) (private)

Process extra options.

[ GitHub ]

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

def _process_options(options) # :doc:
  options
end

#render(*args, &block)

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

[ GitHub ]

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

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 51

def render_to_body(options = {})
end

#render_to_string(*args, &block)

Raw rendering of a template to a string.

It is similar to render, except that it does not set the response_body and it should be guaranteed to always return a string.

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 45

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 55

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 63

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