El método skip_confirmation!
está disponible para cualquier modelo confirmable
.
@user = User.new params[:user]
@user.skip_confirmation! # Sets confirmed_at to Time.now, activating the account
@user.save
La cuenta de usuario se activará. Si no quieres eso, continúa leyendo.
Devise utiliza devoluciones de llamada condicionales para generar el token de confirmación y enviar el correo electrónico. Se llamarán las devoluciones de llamada solo si confirmation_required?
devuelve true
. Redefinir el modelo de:
def confirmation_required?
false
end
Sin embargo, esto hará que el método active_for_authentication?
siempre devuelven verdadero porque se necesita si se requiere o no la confirmación en cuenta. Tenemos que volver a definir así:
def active_for_authentication?
confirmed? || confirmation_period_valid?
end
De esta manera, la cuenta permanecerá inactiva y ningún correo electrónico de confirmación será enviado. Deberá activar manualmente al usuario llamando al confirm!
en el registro o simplemente configurando confirmed_at
en cualquier fecha.
Es bastante pirata, pero debería funcionar.
Como referencia: confirmable.rb
gracias. pero no quiero que el usuario pueda iniciar sesión. configurará al usuario para que confirme ¿le permite al usuario algún tipo de inicio de sesión? ¿Qué hará eso, solo evitar que se envíen correos electrónicos? gracias – AnApprentice
Además, cuando trato de guardar un nuevo usuario como el que mencioné anteriormente, recibo FALSE en @usuario.save ... además de un correo electrónico, ¿qué otros campos son necesarios para salvar a un usuario? – AnApprentice
Actualicé mi respuesta. Todos los campos marcados como no nulos en su esquema o cuya presencia valide su modelo son obligatorios. Si no los proporciona, Active Record no guardará su objeto. –