Method: ActionView::Base#render

Defined in:
lib/action_view/base.rb

#render(options = {}, local_assigns = {}, &block) ⇒ Object

Returns the result of a render that’s dictated by the options hash. The primary options are:

  • :partial - See ActionView::Partials.

  • :update - Calls update_page with the block given.

  • :file - Renders an explicit template file (this used to be the old default), add :locals to pass in those.

  • :inline - Renders an inline template similar to how it’s done in the controller.

  • :text - Renders the text passed in out.

If no options hash is passed or :update specified, the default is to render a partial and use the second parameter as the locals hash.



255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
# File 'lib/action_view/base.rb', line 255

def render(options = {}, local_assigns = {}, &block) #:nodoc:
  local_assigns ||= {}

  case options
  when Hash
    options = options.reverse_merge(:locals => {})
    if options[:layout]
      _render_with_layout(options, local_assigns, &block)
    elsif options[:file]
      template = self.view_paths.find_template(options[:file], template_format)
      template.render_template(self, options[:locals])
    elsif options[:partial]
      render_partial(options)
    elsif options[:inline]
      InlineTemplate.new(options[:inline], options[:type]).render(self, options[:locals])
    elsif options[:text]
      options[:text]
    end
  when :update
    update_page(&block)
  else
    render_partial(:partial => options, :locals => local_assigns)
  end
end