gpt4 book ai didi

ruby-on-rails - Rails - 从嵌套验证错误消息中省略模型名称

转载 作者:行者123 更新时间:2023-12-04 06:13:42 25 4
gpt4 key购买 nike

在我的 item型号我有这条线has_many :user_items, validate: true验证关联的 user_item模型时 item得到验证。验证错误消息如下所示:

>>  @item.errors
=> ... @messages={:name=>["can't be blank"],
:description=>["can't be blank"],
:"user_items.picture"=>["can't be blank"],
:user_items=>["is invalid"]}>
>> @item.errors.full_messages
=> ["Name can't be blank",
"Description can't be blank",
"User items picture can't be blank",
"User items is invalid"]

_error_messages.html.erb

<% if target.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(target.errors.count, "error") %>.
</div>
<ul>
<% target.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>

项目的错误消息不显示项目名称。例如,错误消息不显示“项目描述不能为空”,它只显示“描述不能为空”。我怎样才能使用户项目的错误消息以相同的方式省略模型名称,例如“图片不能为空”而不是“用户项目图片不能为空”?

最佳答案

您可以为此使用 ActiveRecord 的内置 I18n 实现。更新您的 config/locales/en.yml 如下:

en:
activerecord:
attributes:
item/user_items:
picture: 'Picture'

这将确保您的 user_items.picuture 验证消息为属性名称显示“图片”而不是“用户项目图片”。

参见 "Translations for Active Record Models"了解更多详情。

关于ruby-on-rails - Rails - 从嵌套验证错误消息中省略模型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35486570/

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