Eigentlich möchten Sie dies in Ihrem Blick und nicht Ihr Modell tun, und es ist eigentlich ziemlich geradlinig. Wir werden nur eine Schleife durch die Fehler, und wenn die ein für Ihre Befestigung kommt werden wir die Feldnamen ignorieren:
<ul>
<% @myObject.errors.keys.each do |field| %>
<% @myObject.errors[field].each do |msg| %>
<% if field == :image_file_name %>
<li><%= msg %></li>
<% else %>
<li><%= field.to_s + " " + msg %></li>
<% end %>
<% end %>
<% end %>
</ul>
Ersetzen @myObject
mit dem Namen des Modells, das nur den Nachrichtensatz angezeigt werden soll zu Ihren Anhangsvalidierungsfehlern. Dies ist nur ein einfaches Beispiel, das sie inline mit dem Rest anzeigt, aber natürlich können Sie mit den Nachrichten alles machen, was Sie möchten. Es ist wichtig, den Namen des Feldes beizubehalten, in dem der Fehler aufgetreten ist, falls Sie eine für den Fehler spezifische Logik programmieren möchten, ohne sich darauf verlassen zu müssen, dass die Fehlermeldung für immer gleich bleibt.
nur einen Tippfehler helfen, bearbeitet es prost – Smickie
Sonderbare. Ich habe es gerade getestet und sehe die Nachricht gut. Das Problem ist, dass der Fehler zu 'image_file_name' hinzugefügt wird. Sie könnten also einfach eine einfache Rails-Validierung für diese Spalte hinzufügen (nicht sicher, ob sie funktioniert) und eine Nachricht hinzufügen.Dennoch ist es besser, alle Nachrichten in einer Gebietsschemadatei zu bearbeiten. Und welche Version von Paperclip benutzen Sie? Weil es ein Fehler in einer älteren Version sein könnte. – RobinBrouwer
Lesen Sie Ihren Beitrag einfach noch einmal und ich glaube, ich habe ihn falsch interpretiert. Die Nachricht wird angezeigt, aber der Spaltenname wird auch in der Nachricht angezeigt. Ich schätze, das ist ein 'error_messages_for' Ding. Normalerweise benutze ich 'error_message_for' nicht (auch weil es nicht in Rails 3 ist), also habe ich das in meinem kleinen Test nicht gesehen. Ich weiß nicht, wie ich es für dich reparieren soll. Das tut mir leid. :( – RobinBrouwer