aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/type/internal
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2016-04-13 10:48:11 -0600
committerSean Griffin <sean@seantheprogrammer.com>2016-04-13 10:52:07 -0600
commitefaa6e4f79d457c2cdd08cbc56d63bc972a6993c (patch)
tree1ca941c737ee546b5f858ffc15e07ca03e04c154 /activerecord/lib/active_record/type/internal
parent2b92069a4985ea21ba12ca726eb15b2daa7bd162 (diff)
downloadrails-efaa6e4f79d457c2cdd08cbc56d63bc972a6993c.tar.gz
rails-efaa6e4f79d457c2cdd08cbc56d63bc972a6993c.tar.bz2
rails-efaa6e4f79d457c2cdd08cbc56d63bc972a6993c.zip
Properly serialize all JSON primitives in the AR JSON type
Previously we were assuming that the only valid types for encoding were arrays and hashes. However, any JSON primitive is an accepted value by both PG and MySQL. This does involve a minor breaking change in the handling of `default` in the schema dumper. This is easily worked around, as passing a hash/array literal would have worked fine in previous versions of Rails. However, because of this, I will not be backporting this to 4.2 or earlier. Fixes #24234
Diffstat (limited to 'activerecord/lib/active_record/type/internal')
-rw-r--r--activerecord/lib/active_record/type/internal/abstract_json.rb6
1 files changed, 1 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/type/internal/abstract_json.rb b/activerecord/lib/active_record/type/internal/abstract_json.rb
index 097d1bd363..513c938088 100644
--- a/activerecord/lib/active_record/type/internal/abstract_json.rb
+++ b/activerecord/lib/active_record/type/internal/abstract_json.rb
@@ -17,11 +17,7 @@ module ActiveRecord
end
def serialize(value)
- if value.is_a?(::Array) || value.is_a?(::Hash)
- ::ActiveSupport::JSON.encode(value)
- else
- value
- end
+ ::ActiveSupport::JSON.encode(value)
end
def accessor