我知道我可以用 i18n 解决这个问题,如果我有时间我会尝试这样做,但为了更快地解决我很好奇:有没有办法将属性名称添加到 rails 验证错误?例如,我的模型中有以下内容:
validates_presence_of :name
呈现的验证错误是can't be blank
. 我更愿意这样说Name can't be blank
。
我知道我可以用 i18n 解决这个问题,如果我有时间我会尝试这样做,但为了更快地解决我很好奇:有没有办法将属性名称添加到 rails 验证错误?例如,我的模型中有以下内容:
validates_presence_of :name
呈现的验证错误是can't be blank
. 我更愿意这样说Name can't be blank
。
validates_presence_of :name, :format => { :message => "whatever you want" }
使用errors.full_messages
:
<ul>
<% @record.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
仅有的 -
validates_presence_of :name, :message => "Name can't be blank"
对于validates_presence_of
, 错误语言环境是 - “不能为空”;属性/属性名称在验证期间作为前缀。您可以通过上面的方法覆盖它。因此,对于您的情况,由于属性名称为“名称”,错误将自动变为“名称不能为空”。要覆盖所有验证的属性名称,您可以使用 human_attribute_name(http://apidock.com/rails/ActiveModel/Translation/human_attribute_name)