user_signed_in rails gema current_user ruby-on-rails authentication authlogic

ruby-on-rails - rails - gema devise



Usando mensajes de error personalizados de authlogic (3)

Estoy usando la gema authlogic para la validación de usuarios 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.

¡Gracias!


Reemplace los mensajes de error de Authlogic cambiando en el archivo en.yml
Esto funciona para mi.

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."


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: "La combinación de correo electrónico / contraseña no es válida" , ya sea que la contraseña o el correo electrónico sean incorrectos. Puede cambiar el texto del mensaje especificando una cadena en lugar de true :

generalize_credentials_error_messages "Try again"


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 sobrescriban las opciones que especifique. Usted especifica la configuración en su controlador de usuario de esta manera:

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 otras configuraciones, consulte la documentation . En las secciones de Configuración de cada módulo puede encontrar las configuraciones y sus valores predeterminados y cómo anularlas.

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