diff options
author | Neeraj Singh <neerajdotname@gmail.com> | 2013-05-03 00:46:18 -0400 |
---|---|---|
committer | Neeraj Singh <neerajdotname@gmail.com> | 2013-05-06 15:16:42 -0400 |
commit | 3771e4d51122e1ec22728029bae00f121d5d4e3b (patch) | |
tree | e9d684ba94974f8ebb2780c51d1b8178575e9dc4 /activerecord/lib | |
parent | 32b4abddfa1f01009e0a9eb2a8820715b2fae78a (diff) | |
download | rails-3771e4d51122e1ec22728029bae00f121d5d4e3b.tar.gz rails-3771e4d51122e1ec22728029bae00f121d5d4e3b.tar.bz2 rails-3771e4d51122e1ec22728029bae00f121d5d4e3b.zip |
raise IrreversibleMigration if no column given
fixes #10419
Following code should raise IrreversibleMigration. But the code was
failing since options is an array and not a hash.
def change
change_table :users do |t|
t.remove_index [:name, :email]
end
end
Fix was to check if the options is a Hash before operating on it.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/migration/command_recorder.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/migration/command_recorder.rb b/activerecord/lib/active_record/migration/command_recorder.rb index 79c55045ba..9782a48055 100644 --- a/activerecord/lib/active_record/migration/command_recorder.rb +++ b/activerecord/lib/active_record/migration/command_recorder.rb @@ -144,7 +144,10 @@ module ActiveRecord def invert_remove_index(args) table, options = *args - raise ActiveRecord::IrreversibleMigration, "remove_index is only reversible if given a :column option." unless options && options[:column] + + unless options && options.is_a?(Hash) && options[:column] + raise ActiveRecord::IrreversibleMigration, "remove_index is only reversible if given a :column option." + end options = options.dup [:add_index, [table, options.delete(:column), options]] |