Aquí está mi situación, uso el diseño para permitir a los usuarios crear una cuenta en mi sitio y administrar su autenticación. Durante el proceso de registro, les permito a los clientes cambiar algunas opciones , lo que lleva a crear una cuenta realmente diferente, pero sigue basándose en el mismo recurso de usuario central. Me gustaría elegir no enviar un correo electrónico de confirmación para algunos de los tipos de cuenta de . No me importa si la cuenta no se confirma y el usuario no puede iniciar sesión, eso está bien, no hay pb con eso. ¿Cómo podría hacer eso? Gracias, AlexIdea: ¿Es posible NO enviar un correo electrónico de confirmación en casos específicos? (incluso cuando está confirmable está activo)
Respuesta
En realidad, es bastante fácil una vez que cavar un poco más profundo. Sólo anular un método en su modelo de usuario (o lo que sea que esté utilizando):
# Callback to overwrite if confirmation is required or not.
def confirmation_required?
!confirmed?
end
Ponga sus condiciones y ha hecho trabajo!
Alex
yo era capaz de hacer algo similar con las funciones:
registrations_controller.rb
def build_resource(*args) super if session[:omniauth] # TODO -- what about the case where they have a session, but are not logged in? @user.apply_omniauth(session[:omniauth]) @user.mark_as_confirmed # we don't need to confirm the account if they are using external authentication # @user.valid? end end
Y luego, en mi modelo de usuario:
user.rb
def mark_as_confirmed self.confirmation_token = nil self.confirmed_at = Time.now end
No sé si Diseñar añadió después se presentaron las otras respuestas, pero el código porque esto es justo allí en confirmable.rb
:
# If you don't want confirmation to be sent on create, neither a code
# to be generated, call skip_confirmation!
def skip_confirmation!
self.confirmed_at = Time.now
end
Tenga en cuenta que debe llamar a esto antes de guardar al usuario; de lo contrario, se enviará el mensaje de "Instrucciones de confirmación". – dukedave
También hay un método similar 'skip_reconfirmation! ' –
también puede simplemente añadir la siguiente línea de código en el controlador antes la creación del nuevo usuario:
@user.skip_confirmation!
Si está sobrecargando la acción' create' y usa 'super do | user |' para la personalización, ya es demasiado tarde para omitir, conciba el correo electrónico ya enviado. Esto debería ir en 'build_resource', por ejemplo. –
Si desea saltar enviar el correo electrónico, pero no hacer la confirmación, utilice:
# Skips sending the confirmation/reconfirmation notification email after_create/after_update. Unlike
# #skip_confirmation!, record still requires confirmation.
@user.skip_confirmation_notification!
Si no quieren llamar a esto en su modelo con una devolución de llamada sobrescribir este método:
def send_confirmation_notification?
false
end
- 1. GitLab ¿El correo electrónico no está enviando?
- 2. Es posible enviar un correo electrónico mediante programación sin utilizar ninguna cuenta de correo electrónico real
- 3. ¿Cómo activo: confirmable en Devise?
- 4. Log4Net + ¿Enviar correo electrónico cuando haya terminado?
- 5. Excel VBA - email no Enviar Cuando el equipo está bloqueado
- 6. Enlace de confirmación Correo electrónico en JSF
- 7. ¿Enviar correo electrónico de Elmah?
- 8. vb.net enviar correo electrónico
- 9. cómo enviar correo electrónico HTML
- 10. Enviar correo electrónico - Cocoa
- 11. enviar correo electrónico desde localhost
- 12. Correo electrónico HTML - ¿Está permitido colspan?
- 13. C# Enviar correo electrónico masivo
- 14. Enviar correo electrónico con imagen incrustada - imagen no visible
- 15. django + enviar correo electrónico en html con django-registration
- 16. ¿Ya no está JINI activo?
- 17. correo electrónico de confirmación en FOSUserBundle perfil Editar
- 18. enviar correo electrónico asp.net C#
- 19. Rails ¿Diseñar, cómo omitir el correo electrónico de confirmación pero todavía generar un token de confirmación?
- 20. Rails idear no envía correo electrónico de confirmación, pero requiere
- 21. Enviar correo electrónico desde un desencadenador
- 22. Personalizar diseñar correo electrónico de confirmación
- 23. Idear suave Confirmación
- 24. Django - autenticación, registro con la confirmación de correo electrónico
- 25. Gmail está filtrando el correo electrónico de mi aplicación web como correo no deseado
- 26. iphone app enviar correo electrónico
- 27. Enviar correo electrónico con archivo adjunto mediante aplicación de correo electrónico del cliente
- 28. Enviar correo electrónico desde Cocoa
- 29. Enviar correo electrónico de activación al usuario
- 30. Guión de shell para enviar correo electrónico
El correo no será enviado en un resend_confirmation o una send_reconfirmation, que son útiles ... –
Wow .. ¡Hombre super genial! – knagode