From 137234e7052382385894f8a654995c3d2b3da541 Mon Sep 17 00:00:00 2001 From: ccocchi Date: Thu, 20 Sep 2012 13:07:18 +0200 Subject: [PATCH] Correctly pass resource for simple render. Only fetch template name when needed --- lib/rabl-rails/responder.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/rabl-rails/responder.rb b/lib/rabl-rails/responder.rb index f6e8a03..dc137ce 100644 --- a/lib/rabl-rails/responder.rb +++ b/lib/rabl-rails/responder.rb @@ -7,13 +7,19 @@ module RablRails class Responder < ActionController::Responder def initialize(controller, resources, options = {}) super - @api_template = @controller.respond_to?(:responder_default_template, true) ? controller.send(:responder_default_template) : nil + if options[:locals] + options[:locals][:resource] = resource + else + options[:locals] = { resource: resource } + end end protected def api_behavior(error) - rabl_options = options.merge(template: @api_template || RablRails.responder_default_template, locals: { resource: resource }) + template = @controller.respond_to?(:responder_default_template, true) ? controller.send(:responder_default_template) + : RablRails.responder_default_template + rabl_options = options.merge(template: template) if get? controller.default_render rabl_options