Ops, perdi meu celular. Como posso fazer o OTP agora?

Hoje olhei para isso novamente e descobri que:

[25] pry(main)> how.totp_enabled?
=> false
[26] pry(main)> how.backup_codes_enabled?
=> true
[27] pry(main)> how.totp_or_backup_codes_enabled?
=> true

Então, tentei remover os códigos de backup também, seguindo a resposta acima de @falco:

UserSecondFactor.backup_codes.where(user_id: id).each(&:destroy!)

Agora, aqui está a solução completa para desabilitar o OTP de um usuário quando ele perdeu o acesso: você deve remover tanto as entradas de totps quanto as de backup_codes, para que a chamada a #totp_or_backup_codes_enabled? retorne false.