.rename_tableé um método de instância, não um método de classe, portanto, a chamada Class.methodnão vai funcionar. Em vez disso, você precisará criar uma instância da classe e chamar o método na instância, assim:Class.new.method .
[EDIT] Nesse caso, ActiveRecord::ConnectionAdapters::SchemaStatementsnem sequer é uma classe (como apontado por cam), o que significa que você não pode nem mesmo criar uma instância dela conforme o que eu disse acima. E mesmo se você usou o exemplo de cam class Foo; include ActiveRecord::ConnectionAdapters::SchemaStatements; def bar; rename_table; end; end;, ele ainda não funcionaria comorename_table uma exceção.
Por outro lado, ActiveRecord::ConnectionAdapters::MysqlAdapter é uma classe e é provável que você precise renomear sua tabela (ou SQLite ou PostgreSQL, dependendo do banco de dados que você está usando). Agora, por acaso, ActiveRecord::ConnectionAdapters::MysqlAdapterjá está acessível Model.connection, então você deve poder fazer isso completamenteModel.connection.rename_table usando qualquer modelo em seu aplicativo. [/EDITAR]
No entanto, se você deseja renomear permanentemente uma tabela, sugiro usar uma migração para fazê-lo. É fácil e a maneira preferida de manipular sua estrutura de banco de dados com o Rails. Veja como fazê-lo:
# Commandline
rails generate migration rename_my_table
# In db/migrate/[timestamp]_rename_my_table.rb:
class RenameMyTable < ActiveRecord::Migration
def self.up
rename_table :my_table, :my_new_table
end
def self.down
rename_table :my_new_table, :my_table
end
end
Em seguida, você pode executar sua migração com rake db:migrate(que chama o self.upmétodo) e usar rake db:rollback(quais chamadas self.down) para desfazer a migração.