diff options
author | Genadi Samokovarov <gsamokovarov@gmail.com> | 2016-08-10 10:44:08 +0300 |
---|---|---|
committer | Genadi Samokovarov <gsamokovarov@gmail.com> | 2016-08-10 10:44:08 +0300 |
commit | 01fbdb311d0661b4db89024a9b1c9fafcaceaafd (patch) | |
tree | da472dc6e02f65c4b14edd471150629db8f22c37 /activerecord/test/cases/adapters | |
parent | 7b31b06d4afd73734ac54cbbac105f0eab8d0d43 (diff) | |
download | rails-01fbdb311d0661b4db89024a9b1c9fafcaceaafd.tar.gz rails-01fbdb311d0661b4db89024a9b1c9fafcaceaafd.tar.bz2 rails-01fbdb311d0661b4db89024a9b1c9fafcaceaafd.zip |
Fix a NoMethodError schema_statements.rb
If you call `remove_index` with wrong options, say a type, like I did,
you get:
```
== 20160810072541 RemoveUniqueIndexOnGoals: migrating =========================
-- remove_index(:goal, {:coulmn=>:kid_id, :unique=>true})
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
undefined method `ArgumentError' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x007fb7dec91b28>
```
What happened is that I mistyped column (coulmn) and got a
`NoMethodError`, because of a missing comma during the raise. This made
Ruby think we're calling the method `ArgumentError`.
Diffstat (limited to 'activerecord/test/cases/adapters')
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/active_schema_test.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/active_schema_test.rb b/activerecord/test/cases/adapters/postgresql/active_schema_test.rb index a4a06a2da4..d3c65f3d94 100644 --- a/activerecord/test/cases/adapters/postgresql/active_schema_test.rb +++ b/activerecord/test/cases/adapters/postgresql/active_schema_test.rb @@ -81,6 +81,12 @@ class PostgresqlActiveSchemaTest < ActiveRecord::PostgreSQLTestCase assert_equal expected, remove_index(:people, name: "index_people_on_last_name", algorithm: :concurrently) end + def test_remove_index_with_wrong_option + assert_raises ArgumentError do + remove_index(:people, coulmn: :last_name) + end + end + private def method_missing(method_symbol, *arguments) ActiveRecord::Base.connection.send(method_symbol, *arguments) |