Как удалить все записи в одной из таблиц базы данных в приложении Ruby on Rails?
ruby-on-rails
ruby
database
ruby-on-rails-3
Джастин Мельцер
источник
источник
ActiveRecord
моделями. Вопрос касается удаления записи из «таблицы», и я просто указываю на предположение, содержащееся в ответе.Удалить через SQL
Item.delete_all # accepts optional conditions
Для удаления путем вызова метода уничтожения каждой модели (дорого, но гарантирует вызов обратных вызовов)
Item.destroy_all # accepts optional conditions
Все здесь
источник
если вы хотите полностью очистить базу данных, а не просто удалить модель или прикрепленные к ней модели, вы можете сделать:
вы также можете сделать это в тестовой базе данных
источник
Если вы имеете в виду удалить все экземпляры всех моделей, я бы использовал
источник
select
всякий раз, когда вам нужно использовать выражение if внутри блока, так вам не придется связывать компактный метод для удаления элементов nil.источник
Если ваша модель называется BlogPost, это будет:
источник
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)
Более свежий ответ в случае, если вы хотите удалить все записи в каждой таблице:
Подробнее об этом
eager_load
здесь .После его вызова мы можем получить доступ ко всем потомкам
ActiveRecord::Base
и применитьdelete_all
ко всем моделям.Обратите внимание, что мы не очищаем таблицу SchemaMigration.
источник