aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/attribute_methods.rb
diff options
context:
space:
mode:
authorEugene Kenny <elkenny@gmail.com>2018-11-06 01:51:52 +0000
committerEugene Kenny <elkenny@gmail.com>2018-11-06 01:51:52 +0000
commit65cd0fda2572ac9c78d8582496a9009d0c48df08 (patch)
treea1775a4f7690423034d60e4168501efc45d268f4 /activerecord/lib/active_record/attribute_methods.rb
parenta8c06c2d7dfa49a9fede1eec65c1058fe0fac82b (diff)
downloadrails-65cd0fda2572ac9c78d8582496a9009d0c48df08.tar.gz
rails-65cd0fda2572ac9c78d8582496a9009d0c48df08.tar.bz2
rails-65cd0fda2572ac9c78d8582496a9009d0c48df08.zip
Fix inspect with non-primary key id attribute
The `read_attribute` method always returns the primary key when asked to read the `id` attribute, even if the primary key isn't named `id`, and even if another attribute named `id` exists. For the `inspect`, `attribute_for_inspect` and `pretty_print` methods, this behaviour is undesirable, as they're used to examine the internal state of the record. By using `_read_attribute` instead, we'll get the real value of the `id` attribute.
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods.rb')
-rw-r--r--activerecord/lib/active_record/attribute_methods.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb
index 1e92ee3b96..fd8c1da842 100644
--- a/activerecord/lib/active_record/attribute_methods.rb
+++ b/activerecord/lib/active_record/attribute_methods.rb
@@ -328,7 +328,7 @@ module ActiveRecord
# person.attribute_for_inspect(:tag_ids)
# # => "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"
def attribute_for_inspect(attr_name)
- value = read_attribute(attr_name)
+ value = _read_attribute(attr_name)
format_for_inspect(value)
end