如何自定义rails3验证错误?

时间:2010-10-21 05:54:52

标签: ruby ruby-on-rails-3

如果我有一个文字输入名称'email',并且我设置了:message => “您的电子邮件是错误的”验证错误消息将具有类似

的内容

'电子邮件您的电子邮件是错误的。'

我想知道是否有办法从rails3中的验证错误输出中删除该原始输入名称(在上面的例子中,它的Email)。

2 个答案:

答案 0 :(得分:1)

可能有更好的方法,请让我知道它是什么,但这将有效。

class User < ActiveRecord::Base
  validate do |user|
    user.errors.add_to_base("Your email is of the wrong kind") unless user.email =~ email_regexp
  end
end

另一种执行此操作的方法是定义自定义翻译

# en.yml
en:
  activerecord:
    attributes:
      user:
        email: "Your email"

将此与:message => 'is wrong kind'相结合,它应该有效。 (虽然它不是真正有效的英语;))

答案 1 :(得分:0)

我认为你可以在YAML文件中定义你的消息默认格式,如下所示:

EN:   #Active Model   错误:     #在完整错误消息中使用的默认格式。     格式:“%{attribute}%{message}”

只需删除格式的属性部分即可。