aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-05-20 23:34:48 -0300
committerRafael França <rafaelmfranca@gmail.com>2016-05-20 23:34:48 -0300
commit3e54c1c40e5075069160b6372b3451c5cb795d1d (patch)
treecff5a615829bc83625a0e00fbbd72de8d6d65ece /activerecord
parente3b239cc1a8626c24f4a642e9261bad4a97c6cac (diff)
parentc650341573243307fbe6f63702a9a4e4e289cfcd (diff)
downloadrails-3e54c1c40e5075069160b6372b3451c5cb795d1d.tar.gz
rails-3e54c1c40e5075069160b6372b3451c5cb795d1d.tar.bz2
rails-3e54c1c40e5075069160b6372b3451c5cb795d1d.zip
Merge pull request #24958 from maclover7/fix-24955
Fix ActiveRecord::LogSubscriber edge case
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/log_subscriber.rb6
-rw-r--r--activerecord/test/cases/log_subscriber_test.rb6
2 files changed, 11 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/log_subscriber.rb b/activerecord/lib/active_record/log_subscriber.rb
index efa2a4df02..8e32af1c49 100644
--- a/activerecord/lib/active_record/log_subscriber.rb
+++ b/activerecord/lib/active_record/log_subscriber.rb
@@ -22,7 +22,11 @@ module ActiveRecord
def render_bind(attribute)
value = if attribute.type.binary? && attribute.value
- "<#{attribute.value.bytesize} bytes of binary data>"
+ if attribute.value.is_a?(Hash)
+ "<#{attribute.value_for_database.to_s.bytesize} bytes of binary data>"
+ else
+ "<#{attribute.value.bytesize} bytes of binary data>"
+ end
else
attribute.value_for_database
end
diff --git a/activerecord/test/cases/log_subscriber_test.rb b/activerecord/test/cases/log_subscriber_test.rb
index 707a2d1da1..c97960a412 100644
--- a/activerecord/test/cases/log_subscriber_test.rb
+++ b/activerecord/test/cases/log_subscriber_test.rb
@@ -215,5 +215,11 @@ class LogSubscriberTest < ActiveRecord::TestCase
wait
assert_match(/<16 bytes of binary data>/, @logger.logged(:debug).join)
end
+
+ def test_binary_data_hash
+ Binary.create(data: { a: 1 })
+ wait
+ assert_match(/<7 bytes of binary data>/, @logger.logged(:debug).join)
+ end
end
end