2011-03-21 103 views
15

in rails 3我不想在错误消息中显示字段名称。任何人都知道如何做到这一点?从验证错误消息中删除字段名称

validates_presence_of :title, :message => "no title" 

它显示

Title no title 

我想

no title 
+2

那不是重复。 – hlcs 2016-09-02 08:31:57

+0

你有答案吗? – 2017-01-05 09:56:09

回答

27

在表单视图改变当前代码

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

有了这个

 <%@object.errors.messages.values.each do |msg| %> 
     <%msg.each do |m| %> 
      <li><%= m %></li> 
     <%end %> 
     <% end %> 
16

这个工作对我们(轨道4):

%ul 
    - @some_object.errors.messages.each do |message| 
    %li= message[1][0] 
+1

使用Rails 4.0.2,这将删除错误消息文本并仅保留项目符号。 – Deborah 2013-12-08 04:01:03

2

这在Rails中4(HAML)为我工作如果更改元素的标签,则会影响错误消息标签。所以,如果你将其更改为空字符串,它将使只是消息:

-# reviews/_form.html.haml 
= form_for review do |form| 
    = form.label :rating, (review.errors[:rating] ? "" : "Rate this Item") 
0

<% resource.errors.each do |attr,msg| %> 
    <li><%= msg %></li> 
<% end %> 
0

您可以使用下面的宝石

https://github.com/jeremydurham/custom-err-msg

您可以在开始使用“^”字符消息值。它只会显示此后的字符。

validates_presence_of :title, :message => "^no title" 

您可以使用下面的宝石也

http://www.rubydoc.info/gems/dynamic_form/1.1.4

+4

^不起作用。 – riley 2015-08-15 14:42:59

+1

你必须使用宝石。我在我的项目中使用它。 – Abhi 2015-08-17 05:12:37

+2

@riley http://stackoverflow.com/a/40254247/365218 – Rystraum 2016-10-26 05:21:23

相关问题