Удаление имени поля из сообщения об ошибке проверки

в rails 3 Я не хочу показывать имена полей в сообщениях об ошибках. Кто-нибудь знает, как это сделать?

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

показывает

Title no title 

Я хочу

no title

Ответы

Ответ 1

В форме формы измените свой текущий код

      <%@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 %>

Ответ 2

Это сработало для нас (Rails 4):

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

Ответ 4

Это работало для меня в Rails 4 (haml):

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

Ответ 5

Если вы измените метку элемента, это приведет к появлению метки сообщения об ошибке. Поэтому, если вы измените его на пустую строку, он отобразит только сообщение:

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

Ответ 6

Вы можете использовать следующий Gem

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

Вы можете использовать символ '^' в начале значения сообщения. И после этого будут отображаться только символы.

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

Вы также можете использовать следующий Gem

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