instance method
inverse_of
Ruby on Rails 6.1.7.10
Since v4.0.13Signature
inverse_of(command, args, &block)
Returns the inverse of the given command. For example:
recorder.inverse_of(:rename_table, [:old, :new]) # => [:rename_table, [:new, :old]]
If the inverse of a command requires several commands, returns array of commands.
recorder.inverse_of(:remove_columns, [:some_table, :foo, :bar, type: :string]) # => [[:add_column, :some_table, :foo, :string], [:add_column, :some_table, :bar, :string]]
This method will raise an IrreversibleMigration exception if it cannot invert the command.
Parameters
-
commandreq -
argsreq -
blockblock
Source
# File activerecord/lib/active_record/migration/command_recorder.rb, line 98
def inverse_of(command, args, &block)
method = :"invert_#{command}"
raise IrreversibleMigration, <<~MSG unless respond_to?(method, true)
This migration uses #{command}, which is not automatically reversible.
To make the migration reversible you can either:
1. Define #up and #down methods in place of the #change method.
2. Use the #reversible method to define reversible behavior.
MSG
send(method, args, &block)
end
Defined in activerecord/lib/active_record/migration/command_recorder.rb line 98
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Migration::CommandRecorder