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

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

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

我的模型代码是这样的:

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

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

共收到 10 条回复

你需要 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
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册