使用自定义authlogic错误消息

blo*_*ilk 16 authentication ruby-on-rails authlogic

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

谢谢!

Bra*_*eno 16

authlogic有一个特殊的设置用于此目的:

class UserSession < Authlogic::Session::Base  
  generalize_credentials_error_messages true
end
Run Code Online (Sandbox Code Playgroud)

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

generalize_credentials_error_messages "Try again"
Run Code Online (Sandbox Code Playgroud)


小智 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
Run Code Online (Sandbox Code Playgroud)

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

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