В качестве альтернативы вы можете использовать delete и delete_all которые не будут :before_destroy:after_destroy вызовы :before_destroy и :after_destroy или любые зависимые опции ассоциации.
User.delete_all(condition: 'value') позволит вам удалить записи без первичного ключа
Примечание: из комментария user.destroy не будет работать, если у модели User нет первичного ключа.
Примечание 2: Из комментария @pavel-chuchuva, destroy_all с условиями и delete_all с условиями устарели в Rails 5.1 - см. Guides.rubyonrails.org/5_1_release_notes.html
Ответ 2
Существует delete, delete_all, destroy и destroy_all.
delete не создает объекты, а destroy делает. В общем случае delete быстрее, чем destroy.
Ответ 3
User.destroy
User.destroy(1) удалит пользователя с id == 1 и :before_destroy и :after_destroy обратными вызовами. Например, если у вас есть связанные записи
has_many :addresses, :dependent => :destroy
После уничтожения пользователя его адреса также будут уничтожены.
Если вместо этого вы используете действие удаления, обратные вызовы не будут выполняться.
User.destroy, User.delete
User.destroy_all(<conditions>) или User.delete_all(<conditions>)
Уведомление: Пользователь - это класс, а пользователь - объект экземпляра