Method: Plezi::Controller#render

Defined in:
lib/plezi/controller/controller.rb

#render(template, &block) ⇒ Object

Renders the requested template (should be a string, subfolders are fine).

Template name shouldn’t include the template’s extension or format - this allows for dynamic format template resolution, so that ‘json` and `html` requests can share the same code. i.e.

Plezi.templates = "views/"
render "users/index"

Using layouts (nested templates) is easy by using a block (a little different then other frameworks):

render("users/layout") { render "users/index" }


80
81
82
83
84
85
86
# File 'lib/plezi/controller/controller.rb', line 80

def render(template, &block)
   frmt = params['format'.freeze] || 'html'.freeze
   mime = nil
   ret = ::Plezi::Renderer.render "#{File.join(::Plezi.templates, template.to_s)}.#{frmt}", binding, &block
   response[Rack::CONTENT_TYPE] = mime if ret && !response.content_type && (mime = Rack::Mime.mime_type(".#{frmt}".freeze, nil))
   ret
end