tutorial signup sign_in rails method gema confirmable ruby-on-rails-3 devise devise-confirmable

ruby-on-rails-3 - signup - gema devise



diseƱar reconfirmable (1)

OK, esto es vergonzoso ..

Después de sumergirme en el código de Devise, me di cuenta de que no es necesario establecer el atributo unconfirmed_email de su modelo de usuario, sino simplemente cambiar el atributo de correo electrónico existente. El atributo unconfirmed_email solo se usa internamente para que Devise almacene la dirección de correo electrónico hasta que se confirme.

La versión posterior de la gema de dispositivos explica esto en la migración inicial. Aquí está la sección "Confirmable" (note el comentario en la última línea) de la migración de XXX_devise_create_users.rb :

## Confirmable t.string :confirmation_token t.datetime :confirmed_at t.datetime :confirmation_sent_at t.string :unconfirmed_email # Only if using reconfirmable

Lo siento por molestar, pero espero que esto pueda ayudar a alguien que tiene el mismo problema ...

Me gustaría usar la opción de dispositivo: reconfirmable en mi modelo de usuario, por lo que cada vez que un usuario cambia su correo electrónico, necesita confirmarlo con un enlace enviado por correo electrónico.

El gran problema es que el correo electrónico nunca se envía ...

Mi configuración es con el dispositivo 2.1.2 es:

modelo de usuario:

attr_accessible: unconfirmed_email, ... devise :invitable, :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :omniauthable

en el iniciador devise.rb:

config.reconfirmable = true

En las rutas:

devise_for :users

en el formulario se configura correctamente el campo de modelo unconfirmed_email. Revisé esto a través de la consola.

El primer correo electrónico de confirmación, cuando un usuario se registra en la página, se envía sin problemas.

Intenté depurar el problema con la adición de este código al directorio de inicializadores para sobrescribir el método de dispositivo que se activa como un enlace after_update:

module Devise::Models::Confirmable def send_confirmation_instructions debugger end end

Parece que nunca se llama a send_confirmation_instructions, ya que nunca llego al depurador.

¿De alguna manera necesito llamar a reconfirmable, o se activa automáticamente cuando se configura el atributo del modelo "unconfirmed_email" a una nueva dirección de correo electrónico?

Agradecido por cualquier ayuda, j.