16

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

谢谢!

4

3 回答 3

16

authlogic 为此目的进行了特殊设置:

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

错误消息将相同:“电子邮件/密码组合无效”,密码或电子邮件是否错误。您可以更改消息的文本,指定字符串而不是true

generalize_credentials_error_messages "Try again"
于 2010-01-19T16:44:32.593 回答
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

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

或者,您可以使用本地化和设置error_messages.email_invalid(这是插件在将其设置为默认英文句子之前寻找的内容,如果您正在构建国际应用程序也很有用)。

于 2009-12-17T03:56:50.330 回答
4

通过更改 en.yml 文件覆盖 Authlogic 错误消息
它适用于我。

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."
于 2012-10-30T15:07:55.283 回答