2009-12-16 149 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."