从语言环境错误消息中删除属性名称

Remove attribute name from locales error message

我有一组语言环境,如下所列。当触发错误消息时,它将提取属性的名称并将其添加到错误消息之前。

提交时点值为空的错误结果是,"value points value can't be blank"。

如何删除错误消息中的 {%attribute} 名称?

en:
 activerecord:
    attributes:
      referral:
        email: The email address you entered
    errors:
      models:
        answer:
          attributes:
            value:
              blank: points value can't be blank

我也试过在模型中添加消息,但无济于事(它仍然在属性名称前面)。

validates_presence_of :value, :message => "points value can't be blank"

提前致谢!

您可以尝试从您尝试创建的对象中的错误中访问每个消息值,并在每个消息中访问它的第一个值(因为它是一个数组),例如:

<% answer.errors.messages.values.each do |message| %>
  <li><%= message.first %></li>
<% end %>

我会通过本地化属性名称来做到这一点,而不是阻止它被添加到消息中:

en:
  activerecord:
    attributes:
      answer:
        value: "points"