Writing the Renderer

At the beginning of this chapter, we briefly discussed the render method and a few options that it accepts, but we haven’t formally described what a renderer is.

A renderer is nothing more than a hook exposed by the render method to customize its behavior. Adding our own renderer to Rails is quite simple. Let’s consider the :json renderer in Rails source code as an example:

rails/actionpack/lib/action_controller/metal/renderers.rb
​ 
add :json ​do​ |json, options|
​ 
json = json.to_json(options) ​unless​ json.kind_of?(String)
​ 
​if​ options[:callback].present?
​ 
self.content_type ||= Mime::JS
​ 
​"​#{options[:callback]}​(​#{json}​)"​
​ 
​else​
​ 
self.content_type ||= Mime::JSON ...

Get Crafting Rails 4 Applications, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.