Vaya, he perdido mi teléfono. ¿Cómo puedo obtener el OTP ahora?

Hoy lo volví a revisar y descubrí 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

Así que intenté eliminar también los códigos de respaldo, siguiendo la respuesta anterior de @falco:

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

Ahora, aquí está la solución completa para deshabilitar OTP en un usuario que perdió su forma de acceder: debes eliminar tanto las entradas de totps como los backup_codes, de modo que la llamada a #totp_or_backup_codes_enabled? devuelva false.