2009-12-16 130 views
16

我正在使用authlogic gem在我的一个网站上进行用户验证。一切进展顺利,但我想知道是否可以更改当用户输入无效的电子邮件地址时返回的错误消息。使用自定义authlogic错误消息

谢谢!

回答

14

您可以使用validates_format_of_email_field_options覆盖电子邮件验证的设置。但是,如果您只想更改消息,则可以将选项与merge_validates_format_of_email_field_options合并,以便只覆盖您指定的选项。您在用户控制器中指定如下设置:

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

您还可以更改长度和唯一性验证的设置。还有更多其他设置,请查看documentation,在每个模块的:: Config部分中,您可以找到设置及其默认值以及如何覆盖它们。

或者,您可以使用本地化并设置error_messages.email_invalid(这是插件在将其设置为默认英语句子之前查找的内容,在建立国际应用程序时也很有用)。

16

authlogic为此具有特殊设置:

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

的错误信息将是相同的:“电子邮件/密码组合是无效的”,密码或电子邮件是否是坏的。在en.yml文件
它为我改变

generalize_credentials_error_messages "Try again" 
+0

谢谢你添加这个。没有很多地方提到如何处理登录时的凭证错误。 – jpcamara 2011-08-24 02:15:39

4

覆盖Authlogic错误信息:您可以更改消息文本中指定的字符串,而不是true

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