Я ищу лучший способ удаления записей из таблицы. Например, у меня есть пользователь, идентификатор которого находится во многих таблицах. Я хочу удалить этого пользователя и каждую запись, имеющую его идентификатор, во всех таблицах.
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
из всех других таблиц обнуляется, но оставляет записи в них нетронутыми. Может ли кто-нибудь рассказать, каков правильный процесс для выполнения такой задачи?
Я вижу, что destroy_all
вызывает функцию destroy
для всех связанных объектов, но я просто хочу подтвердить правильный подход.