gpt4 book ai didi

ruby-on-rails - 设计 activerecord 错误自定义消息及其翻译

转载 作者:行者123 更新时间:2023-12-04 10:46:31 24 4
gpt4 key购买 nike

我正在尝试自定义 activerecords 错误消息。这是我所拥有的:

我的错误信息部分文件 app/views/devise/shared/_error_messages.html.erb:

<% if resource.errors.any? %>
<div id="error_explanation" class="verd14 pl-2 pr-2">
<%= I18n.t("errors.messages.not_saved",
count: resource.errors.count,
resource: resource.class.model_name.human.downcase)
%>
<ul>
<% resource.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>

我的 YML 文件:
pl:
activerecord:
errors:
models:
user:
attributes:
email:
blank: "blah blah blah"

但是呈现的错误消息包含更多内容。表明:

电子邮件等等等等

这是为什么?为什么它在翻译的开头显示“电子邮件”字样,以及如何在不创建我自己的验证的情况下摆脱这个额外的“电子邮件”字符串?

这是我在阅读 stackoverflow 上连接的所有内容时发现的内容:

ActiveModel::Errors#full_messages prepends the attribute name to the error message using a separator that will be looked up from errors.format (and which defaults to "%{attribute} %{message}").



但我不知道如何格式化我的 YML 文件。请支持

最佳答案

“这是为什么?为什么在翻译的开头显示‘电子邮件’”
full_messages就是这样的方法默认工作(默认格式为 "%{attribute} %{message}" )。

您可以使用以下任何 I18n 键更改它:

activemodel.errors.models.user.attributes.email.format
activemodel.errors.models.user.format
errors.format

查看文档以获取更多信息: https://apidock.com/rails/v6.0.0/ActiveModel/Errors/full_message

编辑:在你的 yml 文件中是这样的:
pt:
activemodel:
errors:
user:
attributes:
email:
blank: 'bla bla bla'
format: '%{message}'

关于ruby-on-rails - 设计 activerecord 错误自定义消息及其翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59680865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com