我有以下代码:
validates :name, :presence => true
产生的错误信息是“名称不能为空” 而不是使用实际的属性名称(在本例中为“名称”),我想 将消息显示为“注册名称不能为空”。 如何覆盖验证上的默认消息?我尝试追加:消息 但它不起作用......
谢谢!
答案 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文件中定义自定义键的答案更合适。