Rails 错误视图怎样让错误消息不显示键,只显示值?

ZhouYiYu · 2017年08月16日 · 最后由 ZhouYiYu 回复于 2017年08月18日 · 1504 次阅读

我的错误视图代码是这样的:

我的模型代码是这样的:

/ 显示出来的错误视图的这样的:

我只想让错误视图显示我自定义的 message 中的值,而不显示键,应该怎么做?

你需要 i18n

@customer.errors.values

huobazi 回复

什么意思?能具体告诉我怎么加吗,我是 rails 小白

zjyzxun 回复

你的意思是说将@customer.errors.any改成@customer.errors.values.any 吗?我改了,没变化

<% if @customer.errors.full_messages.any? %> 
  <% @customer.errors.messages.values.each do |msg| %>
    <li> <%= msg %> </li>
  <% end %>
<% end %>

你之前日志里面显示了错误信息的 key,比如 Mobile,Name 等 用以上的方式就只打印错误的 value,而不用打印 key

ZhouYiYu 回复

看下六楼。

luolinae86 回复

按照这种方式的话,比如我 mobile 字段有2个限制,一个是长度限制,一个是不能为空限制,这两个错误提示会被合成一个,这样列出来的错误提示的行会必 errors.count 统计出来的少,如:

有没有办法通过 errors.full_messages 来实现我的要求?

@ZhouYiYu

errors.messages 里面针对 attr 对应的 message 是数组的形式,所以如果需要单独显示每条,可以再次遍历 message 即可

<% @customer.errors.messages.each do |attr,message| %>
  <% message.each do |msg| %>
    <li><%= msg %></li>
  <% end %>
<% end %>
luolinae86 回复

已经解决了,感谢回答

ZhouYiYu 关闭了讨论。 08月18日 14:58
需要 登录 后方可回复, 如果你还没有账号请 注册新账号