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.