Module: Onsi::Controller

Extended by:
ActiveSupport::Concern
Defined in:
lib/onsi/controller.rb

Overview

Helper methods for rendering API responses.

Examples:

class PersonController < ActionController::API
  include Onsi::Controller

  render_version(:v1)

  def show
    person = Person.find(params[:id])
    render_resource(person)
  end
end

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#render_resource(resource, opts = {}) ⇒ Object

Render the JSON response.

Parameters:

  • resource (Onsi::Resource, Enumerable, Onsi::Model)
  • opts (Hash) (defaults to: {})

    The options hash. If a version is included that will take presidence over the controller default .render_version

    • The other keys for opts will be passed directly the #render method.



51
52
53
54
55
56
57
58
59
60
# File 'lib/onsi/controller.rb', line 51

def render_resource(resource, opts = {})
   = opts.delete(:meta)
  version = opts.delete(:version) || self.class.render_version || Model::DEFAULT_API_VERSION
  payload = Resource.render(resource, version)
  payload[Resource::META_KEY].merge!() if 
  render_options = {}
  render_options[:json] = payload
  render_options.merge!(opts)
  render(render_options)
end