如何在rails中覆盖authlogic验证消息?

时间:2010-12-16 06:36:22

标签: ruby-on-rails

我在我的应用程序中使用Rails Authlogic。我想覆盖验证消息。 validates_length_of和validates_format_of正在运行,但validates_presence_of对登录名和密码都不起作用。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

将语言环境语言文件config / locales / es.yml添加到locales,然后添加如下内容:

es: 
  authlogic:
    error_messages:
      login_blank: No puede estar en blanco
      login_not_found: no es valido
      login_invalid: "debe utilizar sólo letras, numeros, espacios, y  .-_@ por favor."
      consecutive_failed_logins_limit_exceeded: Consecutive failed logins limit exceeded, account is disabled.
      email_invalid: debe ser similar a una dirección de correo electrónico.
      password_blank: No puede estar en blanco
      password_invalid: no es valido
      not_active: Tu cuenta no está activo
      not_confirmed: Su cuenta no se confirma
      not_approved: "Tu cuenta no está aprobada"
      no_authentication_details: Usted no proporcionó ningún detalle para la autenticación.
      email_invalid: "No es valido"

答案 1 :(得分:0)

UserUserSession型号的验证失败了吗?或两者兼而有之?

对于User模型,请确保您正在呼叫acts_as_authentic

class User
  acts_as_authentic
end

对于UserSession模型,请确保您继承Session类:

class UserSession < Authlogic::Session::Base
end

至于自定义错误消息,您可以使用i18n方法,如下所述。或者,至少对于User模型,您可以在Ruby中执行此操作。请参阅以下Authlogic文档:

http://rdoc.info/github/binarylogic/authlogic/master/Authlogic/ActsAsAuthentic/Login/Config http://rdoc.info/github/binarylogic/authlogic/master/Authlogic/ActsAsAuthentic/Password/Config

在这些文档中,您会注意到一些以“合并”开头的方法。那些应该为你做的伎俩。

我找不到Session类的任何等价物。 Stack Overflow问题中的注释表明它不存在:

Custom validation messages for Session model in Authlogic