aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-10-30 08:22:14 -0700
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-10-30 08:22:14 -0700
commit48fe4f131b6afafbd92e4209217a2edb82237805 (patch)
treef940eebbbf5073fa53aaa398cc2b1fea605be7c5 /activerecord
parent0ad6c08ca50d19a9994bf4e9a464e1a44cb612a0 (diff)
parentfcd19a13b703c64739402d79d07185a27caffa79 (diff)
downloadrails-48fe4f131b6afafbd92e4209217a2edb82237805.tar.gz
rails-48fe4f131b6afafbd92e4209217a2edb82237805.tar.bz2
rails-48fe4f131b6afafbd92e4209217a2edb82237805.zip
Merge pull request #8072 from kennyj/remove_mattr_include_root_in_json
Allow include_root_in_json to be inheritable by using the class_attribute created by Active Model serialization module.
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/serialization.rb1
-rw-r--r--activerecord/test/cases/serialization_test.rb16
2 files changed, 16 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/serialization.rb b/activerecord/lib/active_record/serialization.rb
index 6a511c307b..6b55af4205 100644
--- a/activerecord/lib/active_record/serialization.rb
+++ b/activerecord/lib/active_record/serialization.rb
@@ -5,7 +5,6 @@ module ActiveRecord #:nodoc:
include ActiveModel::Serializers::JSON
included do
- mattr_accessor :include_root_in_json, instance_accessor: false
self.include_root_in_json = true
end
diff --git a/activerecord/test/cases/serialization_test.rb b/activerecord/test/cases/serialization_test.rb
index 25b860878a..eb9cb91e32 100644
--- a/activerecord/test/cases/serialization_test.rb
+++ b/activerecord/test/cases/serialization_test.rb
@@ -45,4 +45,20 @@ class SerializationTest < ActiveRecord::TestCase
assert_equal @contact_attributes[:awesome], contact.awesome, "For #{format}"
end
end
+
+ def test_include_root_in_json_allows_inheritance
+ original_root_in_json = ActiveRecord::Base.include_root_in_json
+ ActiveRecord::Base.include_root_in_json = true
+
+ klazz = Class.new(ActiveRecord::Base)
+ klazz.table_name = 'topics'
+ assert klazz.include_root_in_json
+
+ klazz.include_root_in_json = false
+ assert ActiveRecord::Base.include_root_in_json
+ assert !klazz.include_root_in_json
+ assert !klazz.new.include_root_in_json
+ ensure
+ ActiveRecord::Base.include_root_in_json = original_root_in_json
+ end
end