2009-12-16 19 views
16

Estoy utilizando la gema authlogic para la validación del usuario en uno de mis sitios. Todo va bien, pero me pregunto si es posible cambiar el mensaje de error que se devuelve cuando el usuario escribe una dirección de correo electrónico no válida.Uso de mensajes de error authlogic personalizados

Gracias!

Respuesta

14

Puede anular la configuración para la validación de correo electrónico con validates_format_of_email_field_options. Sin embargo, si solo desea cambiar el mensaje, puede combinar las opciones con merge_validates_format_of_email_field_options para que solo se anulen las opciones que especifique. Especifique la configuración en su controlador de usuario como se muestra a continuación:

class User < ActiveRecord::Base 
    acts_as_authentic do |c| 
     c.merge_validates_format_of_email_field_options :message => 'My message' 
    end 
end 

También puede cambiar la configuración de las validaciones de longitud y unicidad. También hay muchas más configuraciones, eche un vistazo a documentation, en las secciones :: Config de cada módulo puede encontrar las configuraciones y sus valores predeterminados y cómo anularlos.

Como alternativa, puede usar la localización y establecer error_messages.email_invalid (eso es lo que busca el complemento antes de establecerlo en la frase predeterminada en inglés, también útil si está creando una aplicación internacional).

16

authlogic tiene una configuración especial para este propósito:

class UserSession < Authlogic::Session::Base 
    generalize_credentials_error_messages true 
end 

El mensaje de error será el mismo: "combinación de correo electrónico/contraseña no es válida", si la contraseña o correo electrónico es malo. Usted puede cambiar el texto del mensaje que especifica una cadena en lugar de true:

generalize_credentials_error_messages "Try again" 
+0

gracias por agregar esto. no muchos lugares mencionan cómo manejar los errores de credenciales en el inicio de sesión. – jpcamara

4

Ignorar mensajes de error Authlogic cambiando en el archivo en.yml
Funciona para mí.

en: 
    authlogic: 
     error_messages: 
     login_blank: "Please enter the email address." 
     login_not_found: "This email address is already in the system. Please choose a different email address." 
     login_invalid: "Please enter a valid email address." 
Cuestiones relacionadas