Previosly, `update_columns` would just take whatever keys you gave it
and tried to run the update query. Most likely this would result in an
error from the database. However, if the column actually did exist, but
was in `ignored_columns`, this would result in the method returning
successfully when it should have raised, and an attribute that should
not exist written to `@attributes`.
Currently, executing the test with only `attribute_test.rb` results in an error.
```
./bin/test -w test/cases/attribute_test.rb
Run options: --seed 41205
# Running:
....E
Error:
ActiveModel::AttributeTest#test_attributes_do_not_equal_attributes_with_different_types:
NameError: uninitialized constant ActiveModel::AttributeTest::Type
rails/activemodel/test/cases/attribute_test.rb:159:in `block in <class:AttributeTest>'
bin/test test/cases/attribute_test.rb:158
```
Added a missing require to fix this.
Currently, executing the test with only `attribute_set_test.rb` results in an error.
```
./bin/test -w test/cases/attribute_set_test.rb
Run options: --seed 33470
# Running:
E
Error:
ActiveModel::AttributeSetTest#test_#map_returns_a_new_attribute_set_with_the_changes_applied:
NameError: uninitialized constant ActiveModel::AttributeSetTest::AttributeSet
Did you mean? ActiveModel::Attributes
ActiveModel::Attribute
activemodel/test/cases/attribute_set_test.rb:235:in `block in <class:AttributeSetTest>'
bin/test test/cases/attribute_set_test.rb:234
```
Added a missing require to fix this.
Also, I suspect that this is the cause of failures in CI.
Ref: https://travis-ci.org/rails/rails/jobs/299994708