aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorTrung Duc Tran <trung@tdtran.org>2016-07-03 21:27:37 +0200
committerTrung Duc Tran <trung@tdtran.org>2016-09-23 11:38:38 -0700
commit21675fdc441e5d67dd6bc007979523db164a5b2d (patch)
tree8ea4c551d3bfa5252db0ab2081d813727cf08719 /activerecord/lib
parent0bc196518a7369d1279a11faad8aef2442539c82 (diff)
downloadrails-21675fdc441e5d67dd6bc007979523db164a5b2d.tar.gz
rails-21675fdc441e5d67dd6bc007979523db164a5b2d.tar.bz2
rails-21675fdc441e5d67dd6bc007979523db164a5b2d.zip
Serialize JSON attribute value nil as SQL NULL, not JSON 'null'
Test: JSON attribute value nil can be used in where(attr: nil) Add changelog entry
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/type/internal/abstract_json.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/type/internal/abstract_json.rb b/activerecord/lib/active_record/type/internal/abstract_json.rb
index 513c938088..e19c5a14da 100644
--- a/activerecord/lib/active_record/type/internal/abstract_json.rb
+++ b/activerecord/lib/active_record/type/internal/abstract_json.rb
@@ -17,7 +17,11 @@ module ActiveRecord
end
def serialize(value)
- ::ActiveSupport::JSON.encode(value)
+ if value.nil?
+ nil
+ else
+ ::ActiveSupport::JSON.encode(value)
+ end
end
def accessor