Ruby on Rails:如何自定义验证错误消息?

时间:2011-10-06 06:03:45

标签: ruby-on-rails-3 validation

我有以下代码:

validates :name, :presence => true

产生的错误信息是“名称不能为空” 而不是使用实际的属性名称(在本例中为“名称”),我想 将消息显示为“注册名称不能为空”。 如何覆盖验证上的默认消息?我尝试追加:消息 但它不起作用......

谢谢!

3 个答案:

答案 0 :(得分:14)

在en.yml文件中将自定义键定义为:

activerecord: 
  attributes:
    model_name:
      attribute_name1: key1
      attribute_name2: key2
                 ......

生成错误时将自动使用此密钥。

参考:http://edgeguides.rubyonrails.org/i18n.html#translations-for-active-record-models (5.1活动记录模型的翻译)

答案 1 :(得分:7)

这样可以解决问题:

validates :name, presence: { message: "Registration name can't be blank" }

或旧的哈希火箭语法版本:

validates :name, :presence => { :message => "Registration name can't be blank" }

答案 2 :(得分:6)

现在有点晚了(大约35天后)回答这个问题。所以,对不起。但只是想分享我已经使用了一个宝石,超过几个月前,用于自定义错误消息。

此插件允许您省略特定邮件的属性名称。您所要做的就是以“^”字符开始消息。

我刚刚检查了一下 https://github.com/nwise/custom_error_message &安培;自3月以来它没有更新。所以,我可能在合适的时间使用它。

ps:您在yml文件中定义自定义键的答案更合适。