From dd00e218b1caf7b86a678d6d10eea95f6e8912a0 Mon Sep 17 00:00:00 2001 From: Tee Parham Date: Fri, 18 May 2012 12:45:43 -0600 Subject: [PATCH] use :root option in render :json ArraySerializer can now render arrays with no root --- lib/action_controller/serialization.rb | 2 +- test/serialization_test.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index b795df83..2c9d727f 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -41,7 +41,7 @@ module ActionController def _render_option_json(json, options) if json.respond_to?(:to_ary) - options[:root] ||= controller_name + options[:root] ||= controller_name unless options[:root] == false end serializer = options.delete(:serializer) || diff --git a/test/serialization_test.rb b/test/serialization_test.rb index 03a5d4a8..637a3d79 100644 --- a/test/serialization_test.rb +++ b/test/serialization_test.rb @@ -140,6 +140,11 @@ class RenderJsonTest < ActionController::TestCase render :json => HypermediaSerializable.new end + def render_json_array_with_no_root + render :json => [], :root => false + end + + private def default_serializer_options if params[:check_defaults] @@ -250,4 +255,9 @@ class RenderJsonTest < ActionController::TestCase get :render_json_with_links assert_match '{"link":"http://www.nextangle.com/hypermedia"}', @response.body end + + def test_render_json_array_with_no_root + get :render_json_array_with_no_root + assert_equal '[]', @response.body + end end