2013-02-28 13 views
5

Um klar zu sein, ich weiß, wie die Fehlermeldungen in config/locales/devise.en.yml zu bearbeiten, aber ich beziehe mich auf diese Art von Fehlermeldungen zu Styling:Wie bearbeiten Sie Devise Fehlermeldungen?

2 errors prohibited this user from being saved: 
  • E-Mail kann nicht

    Alles, was ich sehe, ist <% = devise_error_messages - werden blank

  • Passwort nicht kann

leer sein! %> auf der Anmeldeseite, aber ich weiß nicht, wie ich die Fehlermeldungen selbst bearbeiten soll.

In meinem Fall erscheinen die Nachrichten auf der linken Seite, und meine Anmeldung ist zentriert (was seltsam aussieht), mag ich auch nicht die rote Farbe der Nachrichten und würde eine andere Farbe bevorzugen.

Also meine Frage ist, wie kann ich die Fehlermeldung stylen? Zentriere es und ändere die Farbe.

Nicht sicher, welche anderen Controller oder Inhalte zu enthalten, so bald Sie fragen, ich werde das OP mit ihnen bei Bedarf aktualisieren.

Antwort

8

Siehe die Quellen für die devise_error_messages! Methode bei https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb.

Alle Fehler sind innerhalb

<div id="error_explanation"> 

so können Sie diese Tatsache in Ihrem CSS verwenden. Im Inneren verwendet es nur grundlegende Stile: h2 für die Header-Nachricht, ul für die einzelnen Fehler. Siehe dieses SO-Beispiel für das #errorExplanation-Styling, zum Beispiel: how to beautify validations in rails. Vergessen Sie nicht, in diesem Beispiel #errorExplanation durch #error_explanation zu ersetzen.

Aber Ihre beste Methode wäre wahrscheinlich immer noch, diese Methode neu zu schreiben oder zu schreiben und Ihre eigenen zu verwenden, und dort das ganze Styling anzuwenden, das Sie mögen.

Ich würde persönlich empfehlen, Fehler neben den Feldern anzuzeigen, denen sie angehören. Sehen Sie sich diesen SO-Thread an, zum Beispiel, wie man das macht: Rails: Errors close to particular fields in forms.

Eine weitere Verbesserung wäre die Umstellung auf simple_form für Ihre Formulare (und das Abrufen von Fehlern - neben-Felder kostenlos). Sehen Sie zum Beispiel einen ausgezeichneten Railscast dazu: http://railscasts.com/episodes/234-simple-form. Es gibt einen neueren überarbeiteten Railscast, aber nicht sicher, ob Sie dort ein Pro-Abonnent sind.

+0

danke für deine Antwort @moonfly, es hat einfach einen Versuch gemacht und es scheint, als ob dieser Beitrag sich auf eine ältere Version von Devise beziehen könnte. Ich habe die obige Methode mit wenig Erfolg dupliziert. Meine Gerätefehlermeldungen sind in <% = devise_error_messages! %> aber wir können den Inhalt dieser Datei nicht finden. –

+0

Ich habe meine Antwort oben aktualisiert: #errorExplanation sollte im Beispiel durch #error_explanation ersetzt werden. – moonfly

+0

Danke! das hat geholfen, hier ist ein Screenshot: http://i.imgur.com/1r4hQMM.png - Es muss fast nur die Passwortfelder umziehen und sie auch grau machen. Gibt es einen separaten Code dafür? –

Verwandte Themen