我仍然努力得到我的验证错误消息显示没有出现在它的模型的名称,我有一个嵌套的模型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\"]}>"
所以这些消息是在一个哈希?如果是这种情况,我需要找到一种不显示密钥的方式?
最后,在我看来,我正在输出错误信息,像这样
<% @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 %>
我得到一个未定义的方法add_to_base你的答案,但生病的样子进入链接你提供多一点 – Richlewis 2014-09-25 10:39:05
其轨道版本。 。oohhh我的坏,检查更新 – aelor 2014-09-25 10:40:48
哈哈,我不知道这是怎么回事,仍然输出相同的错误信息,因为在问题...确定生病了在时间 – Richlewis 2014-09-25 10:47:02