覆盖SecurePassword的验证错误消息

时间:2011-05-27 23:23:48

标签: ruby-on-rails validation

  

可能重复:
  Fully custom validation error message with Rails

我正在使用Rails 3.1rc1,并认为SecurePassword对我有用。但是,我不喜欢默认的错误消息Password digest can't be blank。如果我自己拨打validates_presence_of :password_digest我可以通过:message => "Password can't be blank"但是因为它在框架中我不知道如何覆盖消息删除“摘要”这个词只会迷惑乔用户。有谁知道怎么做?

修改

尝试添加'覆盖':validates_presence_of,如此:

class User < ActiveRecord::Base
  attr_accessible :email, :password

  has_secure_password
  validates_presence_of :password_digest, :message => "Password can't be blank"
end

但是当尝试提交一个空白密码时,你只会得到两倍的错误:

表单无效

  • 密码摘要不能为空
  • 密码摘要密码不能 空白

2 个答案:

答案 0 :(得分:19)

我相信您可以使用Rails Internationalization API来更改此内容。

在config / locales / en.yml文件中,添加以下内容:

en:
  activerecord:
    attributes:
      user:
        password_digest: "Password"

如果您的模型类不是“用户”,则需要适当更改该行。

无论如何,这对我有用。

答案 1 :(得分:0)

所有这一切都是添加行

validates_confirmation_of :password
validates_presence_of     :password_diges

如果添加行

validates_presence_of :password_digest, :message => "Password can't be blank"

这应该有用,因为这就是调用has_secure_password所做的事情。