ruby-on-rails - microsoft - visual studio installer
Diseñar: pasar la dirección de correo electrónico no confirmada a la página de inicio de sesión (2)
Me imagino que cuando crea el usuario, ¿aún está guardando la dirección de correo electrónico no confirmada en su base de datos cuando crea / guarda el usuario? Si es así, debería poder llamarlo de la misma manera que llama a otras variables en la vista. Asegúrese de que estén definidos en el controlador asociado y luego llévelos a la vista con algo como <% = @ user.email%>.
Cuando un usuario se registra para una cuenta en mi aplicación Rails, estoy usando el comportamiento predeterminado de Devise para enviarle un correo electrónico de confirmación. En el sitio web, después de que el usuario completa el formulario de registro, se lo redirige automáticamente a la página de inicio de sesión con un aviso de alerta de que necesitan confirmar su cuenta por correo electrónico:
"Por favor confirme su cuenta por correo electrónico".
Me gustaría que la alerta sea más específica, como
"Se ha enviado un correo electrónico de confirmación a <% = confirmation_email%>. ¡Haga clic en el enlace del correo electrónico para finalizar el proceso de registro!"
¿Cómo puedo pasar la dirección de correo electrónico no confirmada a la vista?
Necesario para anular el controlador de registros de diseño crear acción con este código:
class RegistrationsController < Devise::RegistrationsController
# POST /resource
def create
build_resource(sign_up_params)
if resource.save
# this block will be used when user is saved in database
if resource.active_for_authentication?
# this block will be used when user is active or not required to be confirmed
set_flash_message :notice, :signed_up if is_navigational_format?
sign_up(resource_name, resource)
respond_with resource, :location => after_sign_up_path_for(resource)
else
# this block will be used when user is required to be confirmed
user_flash_msg if is_navigational_format? #created a custom method to set flash message
expire_session_data_after_sign_in!
respond_with resource, :location => after_inactive_sign_up_path_for(resource)
end
else
# this block is used when validation fails
clean_up_passwords resource
respond_with resource
end
end
private
# set custom flash message for unconfirmed user
def user_flash_msg
if resource.inactive_message == :unconfirmed
#check for inactive_message and pass email variable to devise locals message
set_flash_message :notice, :"signed_up_but_unconfirmed", email: resource.email
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}"
end
end
end
A continuación, pase la variable de correo electrónico en el archivo devise.en.yml
en:
devise:
registrations:
signed_up_but_unconfirmed: "A confirmation email has been sent to %{email}. Please click the link in the email to finish the registration process!"