Я ищу лучший подход для удаления записей из таблицы. Например, у меня есть пользователь, чей идентификатор пользователя находится во многих таблицах. Я хочу удалить этого пользователя и каждую запись со своим идентификатором во всех таблицах.
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
Это работает и удаляет все ссылки пользователя из всех таблиц, но я слышал, что destroy_all
был очень тяжелым процессом, поэтому я попробовал delete_all
. Он удаляет пользователя только из собственной таблицы пользователя, а id
из всех остальных таблиц имеет значение null, но оставляет записи в них нетронутыми. Может ли кто-нибудь поделиться, какой правильный процесс для выполнения такой задачи?
Я вижу, что destroy_all
вызывает функцию destroy
для всех связанных объектов, но я просто хочу подтвердить правильный подход.