diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2016-05-31 11:35:46 -0400 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2016-05-31 11:38:10 -0400 |
commit | c8be4574a2a35c896560ff58b26111ad6dd9d60f (patch) | |
tree | 86cb1cab0a6f4bf2b4e49bf28aec76340634aa86 /activerecord/test | |
parent | 81251c6d99eda71d8c8d748cfd3710242aece142 (diff) | |
download | rails-c8be4574a2a35c896560ff58b26111ad6dd9d60f.tar.gz rails-c8be4574a2a35c896560ff58b26111ad6dd9d60f.tar.bz2 rails-c8be4574a2a35c896560ff58b26111ad6dd9d60f.zip |
`ActiveRecord::Base#hash` should differ between classes
Prior to this change, we would get collisions if Active Record objects
of different classes with the same ID were used as keys of the same
hash. It bothers me slightly that we have to allocate inside of this
method, but Ruby doesn't provide any way to hash multiple values without
allocation
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/base_test.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 3191393a41..80dcba1cf4 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -1504,6 +1504,10 @@ class BasicsTest < ActiveRecord::TestCase assert_not_equal Post.new.hash, Post.new.hash end + test "records of different classes have different hashes" do + assert_not_equal Post.new(id: 1).hash, Developer.new(id: 1).hash + end + test "resetting column information doesn't remove attribute methods" do topic = topics(:first) |