diff options
author | Sean Griffin <sean@thoughtbot.com> | 2015-02-10 08:20:54 -0700 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2015-02-10 08:21:46 -0700 |
commit | 2f8c596d1beb46acd8a74f0e6d5c1c48a29dcee9 (patch) | |
tree | 0915ec2f0975e4bb98b26e43475562dbed34261c /activerecord/test/cases | |
parent | d89912b9bef03f76f355e807476edd292cc293bc (diff) | |
download | rails-2f8c596d1beb46acd8a74f0e6d5c1c48a29dcee9.tar.gz rails-2f8c596d1beb46acd8a74f0e6d5c1c48a29dcee9.tar.bz2 rails-2f8c596d1beb46acd8a74f0e6d5c1c48a29dcee9.zip |
Maintain a consistent order in `ActiveRecord::Base#attributes`
Fixes #18871
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/attribute_set_test.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/test/cases/attribute_set_test.rb b/activerecord/test/cases/attribute_set_test.rb index 8025c7c4d2..112cd2fb14 100644 --- a/activerecord/test/cases/attribute_set_test.rb +++ b/activerecord/test/cases/attribute_set_test.rb @@ -65,6 +65,16 @@ module ActiveRecord assert_equal({ foo: 1, bar: 2.2 }, attributes.to_h) end + test "to_hash maintains order" do + builder = AttributeSet::Builder.new(foo: Type::Integer.new, bar: Type::Float.new) + attributes = builder.build_from_database(foo: '2.2', bar: '3.3') + + attributes[:bar] + hash = attributes.to_h + + assert_equal [[:foo, 2], [:bar, 3.3]], hash.to_a + end + test "values_before_type_cast" do builder = AttributeSet::Builder.new(foo: Type::Integer.new, bar: Type::Integer.new) attributes = builder.build_from_database(foo: '1.1', bar: '2.2') |