From 47850677e9a529d7ff9971b35af4be56f4e838c3 Mon Sep 17 00:00:00 2001 From: Andy Lindeman Date: Tue, 5 Jun 2012 12:37:09 -0400 Subject: [PATCH] Allows serialization_scope to be disabled with serialization_scope nil --- lib/action_controller/serialization.rb | 2 +- test/no_serialization_scope_test.rb | 34 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 test/no_serialization_scope_test.rb diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index 2c9d727f..4230e1d0 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -33,7 +33,7 @@ module ActionController end def serialization_scope - send(_serialization_scope) if respond_to?(_serialization_scope) + send(_serialization_scope) if _serialization_scope && respond_to?(_serialization_scope) end def default_serializer_options diff --git a/test/no_serialization_scope_test.rb b/test/no_serialization_scope_test.rb new file mode 100644 index 00000000..5a109cc0 --- /dev/null +++ b/test/no_serialization_scope_test.rb @@ -0,0 +1,34 @@ +require "test_helper" + +class NoSerializationScopeTest < ActionController::TestCase + class ScopeSerializer + def initialize(object, options) + @object, @options = object, options + end + + def as_json(*) + { :scope => @options[:scope].as_json } + end + end + + class ScopeSerializable + def active_model_serializer + ScopeSerializer + end + end + + class NoSerializationScopeController < ActionController::Base + serialization_scope nil + + def index + render :json => ScopeSerializable.new + end + end + + tests NoSerializationScopeController + + def test_disabled_serialization_scope + get :index + assert_equal '{"scope":null}', @response.body + end +end