从validation错误消息中删除字段名称
在rails 3中我不想在错误消息中显示字段名称。 谁知道怎么做?
validates_presence_of :title, :message => "no title"
表明
Title no title
我想要
no title
在表单视图中更改当前代码
<%@object.errors.full_messages.each do |msg| %> <%= msg %> <% end %>
有了这个
<%@object.errors.messages.values.each do |msg| %> <%msg.each do |m| %> <%= m %> <%end %> <% end %>
这对我们有用(Rails 4):
<% resource.errors.each do |attr,msg| %> <%= msg %> <% end %>
这在Rails 4(haml)中对我有用:
%ul - @some_object.errors.messages.each do |message| %li= message[1][0]
module ActiveModel class Errors def full_messages map { |attribute, message| message } end end end
另请参阅: 更改rails中显示的列名称
您可以使用以下gem
https://github.com/jeremydurham/custom-err-msg
您可以在消息值的开头使用“^”字符。 它只会在此之后显示字符。
validates_presence_of :title, :message => "^no title"
您也可以使用以下Gem
如果更改元素的标签,则会影响错误消息标签。 因此,如果您将其更改为空白字符串,它将仅呈现消息:
-# reviews/_form.html.haml = form_for review do |form| = form.label :rating, (review.errors[:rating] ? "" : "Rate this Item" )