Me gustaría crear manualmente nueva Users, sin obligarlos a verificar su dirección de correo electrónico.

La idea es permitir a los usuarios existentes para agregar automáticamente a sus amigos sin la necesidad de registro. Tiene sentido para el caso de negocio en el que estoy trabajando para resolver.

Cómo se consigue esto con Idear?

InformationsquelleAutor AnApprentice | 2011-01-04

2 Comentarios

  1. 50

    La skip_confirmation! método está disponible para cualquier confirmable modelo.

    @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á aunque. Si usted no quiere que siga leyendo.

    Idear usos condicionales devoluciones de llamada para generar la confirmación de la señal y enviar el correo electrónico. Las devoluciones se llama sólo si confirmation_required? devuelve true. Redefinir en su modelo:

    def confirmation_required?
      false
    end

    Sin embargo, esto hará que el active_for_authentication? método siempre devolverá true porque se necesita si o no se requiere confirmación en cuenta. Tenemos que redefinir que así:

    def active_for_authentication?
      confirmed? || confirmation_period_valid?
    end

    De esta manera, la cuenta permanecerá inactivo y el correo electrónico de confirmación será enviado. Usted tendrá que activar manualmente el usuario llamando confirm! en el registro o simplemente la creación de confirmed_at a cualquier fecha.

    Es un hack, pero debería funcionar.

    De referencia: confirmable.rb

    • gracias. pero no quiero que el usuario pueda iniciar sesión. se ajuste al usuario confirmado que permiten al usuario de alguna forma de inicio de sesión? ¿qué tendrá que hacer, sólo tiene que evitar que los correos electrónicos que se envían? gracias
    • También, cuando intento guardar un nuevo usuario como te mencioné anteriormente, FALSE en @usuario.guardar…. además de un correo electrónico, ¿qué otros campos se requiere para salvar a un usuario?
    • He actualizado mi respuesta. Los campos que están marcados como no nulo en el esquema o cuya presencia el modelo valida para son necesarios. Si no les proporcionan el Registro Activo no guardar su objeto.
    • Si desea crear un usuario que sólo con la dirección de correo electrónico, entonces usted puede desactivar la validación por parte de u.guardar(:validar => falso)
    • activo? se cambia el nombre a active_for_authentication? (a partir de concebir la versión 1.2.0)
    • actualizada la respuesta para reflejar el cambio.

  2. 9

    Solo quiero añadir como referencia para el futuro que ya Idear 2.2 ahora hay una skip_confirmation_notification! método disponible así que, básicamente, hace de todo, desde Matheus’ post sin la redefinición de los métodos en el modelo.

Dejar respuesta

Please enter your comment!
Please enter your name here