Markieren von Feldern auf Rails Validierungsfehlern

8

Wie wird die Feldhervorhebung für Felder angezeigt, die Validierungsfehler in Rails 3.1 nicht bestehen? Ich weiß, dass Scaffolding automatisch den CSS- und Controller-Code erzeugt, um damit umzugehen, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, das manuell zu generieren. Ich habe bereits die String-Anzeige von Fehlermeldungen implementiert durch: @ user.errors.full_messages.each ... etc, aber ich kann die Felder nicht rot markiert bekommen. Irgendwelche Ideen?

Danke.

    
kdhuang 31.08.2012, 21:00
quelle

3 Antworten

19

Angenommen, Sie haben eine Fehler -Klasse für Felder in Ihrer CSS-Datei:

%Vor%

Ist das was du willst?

Extra : hier ist ein Abschnitt zum Anpassen der Standardeinstellungen ActiveRecord-Validierungen CSS.

Bearbeiten: (über extra ifs)

%Vor%

Und dann:

%Vor%

(Ich habe dort vielleicht einen Fehler gemacht - ich schreibe auf einem Telefon - aber Sie erhalten die allgemeine Idee. Sie können dies in einer Anzahl von Wegen = unendlich programmieren, also tun Sie es so, wie Sie es möchten. ..)

    
Jakub Naliwajek 31.08.2012, 21:22
quelle
2

Rails haben jetzt einen schönen Trick im Ärmel..Wenn ein error auftritt, legen Sie ein div mit einer Klasse .field_with_errors um die Fehlerfelder. Jetzt können Sie diese Klasse gezielt ansprechen und Styling hinzufügen.

Um sich auf die Eingabe zu konzentrieren, können Sie

verwenden %Vor%

Diese CSS setzt eine schöne rote Linie um das Element input , während important! vorhandene Stile überschreibt.

    
Abhilash 25.02.2017 12:31
quelle
0

Ich musste dies tun (resource.errors [field_name] .length & gt; 0), um es zum Laufen zu bringen:

def field_class (Ressource, Feldname)     if resource.errors [Feldname] .length & gt; 0       gib "custom_error1" .html_safe zurück     sonst       return "" .html_safe     Ende   Ende

    
Greg Lafrance 01.06.2013 04:53
quelle