0

我知道我可以用 i18n 解决这个问题,如果我有时间我会尝试这样做,但为了更快地解决我很好奇:有没有办法将属性名称添加到 rails 验证错误?例如,我的模型中有以下内容:

validates_presence_of :name

呈现的验证错误是can't be blank. 我更愿意这样说Name can't be blank

4

3 回答 3

1
validates_presence_of :name, :format => { :message => "whatever you want" }
于 2012-10-02T04:21:23.133 回答
0

使用errors.full_messages

<ul>
  <% @record.errors.full_messages.each do |msg| %>
    <li><%= msg %></li>
  <% end %>
</ul>
于 2012-10-02T04:32:32.683 回答
0

仅有的 -

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)

于 2012-10-02T04:39:38.413 回答