【发布时间】:2011-10-06 06:03:44
【问题描述】:
我有以下代码:
validates :name, :presence => true
产生的错误信息是“名称不能为空” 我不想使用实际的属性名称(在本例中为“名称”) 显示消息为“注册名称不能为空”。 如何覆盖验证的默认消息?我尝试附加 :message 但它没有用......
谢谢!
【问题讨论】:
标签: ruby-on-rails-3 validation
我有以下代码:
validates :name, :presence => true
产生的错误信息是“名称不能为空” 我不想使用实际的属性名称(在本例中为“名称”) 显示消息为“注册名称不能为空”。 如何覆盖验证的默认消息?我尝试附加 :message 但它没有用......
谢谢!
【问题讨论】:
标签: ruby-on-rails-3 validation
在 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 Active Record 模型的翻译)
【讨论】:
en.yml 文件位于 config/locales。
这样就可以了:
validates :name, presence: { message: "Registration name can't be blank" }
或旧的哈希火箭语法版本:
validates :name, :presence => { :message => "Registration name can't be blank" }
【讨论】:
<% model.errors.each do |name, error| %> <%= name %><%= error %> <% end %>。 <%= name %> 是第一个 name 来自。
现在(大约 35 天后)回答这个问题有点晚了。所以,对不起。但只是想分享一下,我在几个月前使用了一个 gem,用于自定义错误消息。
此插件允许您省略特定消息的属性名称。您所要做的就是以“^”字符开始消息。
我刚刚在 https://github.com/nwise/custom_error_message & 自 3 月以来一直没有更新。所以,我可能在正确的时间使用它。
ps:不过,您在 yml 文件中定义自定义键的答案更合适。
【讨论】: