Como excluo todos os registros em uma das minhas tabelas de banco de dados em um aplicativo Ruby on Rails?
ruby-on-rails
ruby
database
ruby-on-rails-3
Justin Meltzer
fonte
fonte
ActiveRecord
modelos. A pergunta é sobre a exclusão de registros de uma 'tabela' e estou apenas apontando ou a suposição contida na resposta.Para excluir via SQL
Item.delete_all # accepts optional conditions
Para excluir chamando o método de destruição de cada modelo (caro, mas garante que os retornos de chamada sejam chamados)
Item.destroy_all # accepts optional conditions
Tudo aqui
fonte
se você deseja esvaziar completamente o banco de dados e não apenas excluir um modelo ou modelos anexados, você pode:
você também pode fazer isso no banco de dados de teste
fonte
Se você quer dizer excluir todas as instâncias de todos os modelos, eu usaria
fonte
select
sempre que você precisar usar uma expressão if dentro de um bloco, para evitar ter que encadear o método compact para remover elementos nulos.fonte
Se o seu modelo se chama BlogPost, seria:
fonte
MOPED: 127.0.0.1:27017 QUERY database=a_database collection=nothings selector={} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.3378ms)
Resposta mais recente, caso você queira excluir todas as entradas em todas as tabelas:
Mais informações sobre o
eager_load
aqui .Depois de chamá-lo, podemos acessar todos os descendentes de
ActiveRecord::Base
e podemos aplicar umdelete_all
em todos os modelos.Observe que não limpamos a tabela SchemaMigration.
fonte