gpt4 book ai didi

ruby-on-rails - 模型名称出现在我的 Rails 验证错误中

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:04 25 4
gpt4 key购买 nike

我仍在努力让我的验证错误消息在没有模型名称出现的情况下显示,我有一个名为 AnimalImage 的嵌套模型,并且正在对文件是否具有已提交。

def limit_num_of_images
if image.size < 1
errors.add(:base, "Please add an image")
ap(errors.inspect)
end
end

我在这个例子中得到的错误是:

Animal images base Please add an image

我想展示的是:

Please add an image

在控制台中查看 errors.inspect 的输出是

"#<ActiveModel::Errors:0x007fa0192d1890 @base=#<AnimalImage id: nil, animal_id: nil, image: nil, created_at: nil, updated_at: nil>, @messages={:base=>[\"Please add an image\"]}>"

所以消息是散列的?如果是这样,我需要找到一种不显示 key 的方法吗?

最后在我看来我输出的错误信息是这样的

<% @animal.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>

因此,作为快速修复,我创建了一个只删除文本第一部分的助手,但这感觉太老套了,我想知道如何使用 Rails 正确地完成它:

def error_edit(message)
msg = message
msg.gsub('Animal images base', ' ')
end

// View
<% @animal.errors.full_messages.each do |msg| %>
<li><%= error_edit(msg) %></li>
<% end %>

最佳答案

我的 Controller 也有同样的问题。我知道这不是更好的解决方案,但我相信它会给你一个想法。

请不要使用

errors.add(:base, "Please add an image")

用户这个

errors.add(:attribute, "Please add an image")

<% @animal.errors.each do |key,value| %>
<li><%= "#{key.to_s.titleize} #{value}".html_safe %></li>
<% end %>

关于ruby-on-rails - 模型名称出现在我的 Rails 验证错误中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26036057/

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