ich bin noch ein wenig neu in der Liste und in Ruby on Rails, stehe aber
gerade vor einem Problem, wo ich nicht weiter weiß:
Ich habe zwei vers. Masken, mitdenen vers. Model-Obejekte angelegt
werden
sollen. Für jedes dieser kann ein Attribut aus einer Typ-Liste mit einer
Select-Box gewählt werden.
Für das bauen der Formulare verwende ich einen formbuilder.
Bei beiden Objekten sind die Attribute mandatory, d.h. wähle ich keinen
Eintrag aus der Typ-Liste aus, wird dies in der model-Klasse
moniert/validiert.
In beiden Masken wird dann ein Hinweis angezeigt, dass ein Eintrag
auszuwählen
sei - in einer der beiden Masken erscheint zusätzlich ein roter Rahmen um
die
Select-Box - leider nicht in der anderen. Wie kann ich den roten Rahmen
auch
in der 2. Maske erhalten?
Zum Darstellen des roten Rahmens wird in Maske eins ein div mit
class=“fieldwitherrors” um das Feld eingefügt - im Quellcode von Maske 2
finde ich kein solches diff.
Woran kann das liegen?
Kann es sein, dass Du das erste Formular mit dem scaffold-generator
erzeugt
hast, das zweite jedoch nicht? Scaffold baute solche Formulare, wie Du
sie
beschrieben hast (jedenfalls mW noch in der Version Rails 1.2.3).
Füge einfach das von Dir beschriebene div mit der entsprechenden Klasse
auch
um das Formular, in dem es fehlt und schau was passiert.
wenn Du den scaffold-generator benutzt hättest, dann wüsstest Du das. Du
hättest dann zB ruby script/generate scaffold Post eingegeben, um ein
Post-Model, samt zugehörigem Controller und den Views zu erzeugen. Mein
Rat:
Mache es Dir zum Anfang nicht schwerer als nötig. Suche Dir ein gutes
Tutorial oder einen guten Screencast und vollziehe die ersten Schritte
nach
dessen Vorgaben.
Zuständig für das div ist der helper: <%= error_messages_for
:[your_model_name] %>, der in Deinem einen Formular vorhanden sein wird
(wie
auch immer er da rein gekommen ist) und in dem anderen nicht.
Dieser helper ‘bastelt’ um fehlerhafte Felder ein div mit der von Dir
zitierten Klasse fieldWithErrors. Dieses Verhalten kannst Du auch
überschreiben. Google mal nach field_error_proc. Dann begibst Du Dich
allerdings schon recht tief ins System. Vorher solltest Du wirklich ein
paar
Tutorials nachvollziehen.
Kann es sein, dass Du das erste Formular mit dem scaffold-generator erzeugt
hast, das zweite jedoch nicht? Scaffold baute solche Formulare, wie Du sie
beschrieben hast (jedenfalls mW noch in der Version Rails 1.2.3).
puh, gute Frage woran sehe ich das?
Füge einfach das von Dir beschriebene div mit der entsprechenden Klasse
auch um das Formular, in dem es fehlt und schau was passiert.
Ich glaube, du hast mich missverstanden. Ich nutze in beiden Fällen
einen
Formbuilder um ein formular zu bauen. Wo meinst Du, soll ich ein div
manuell
einfügen?
:[your_model_name] %>, der in Deinem einen Formular vorhanden sein wird
: (wie
auch immer er da rein gekommen ist) und in dem anderen nicht.
Dieser helper ‘bastelt’ um fehlerhafte Felder ein div mit der von Dir
zitierten Klasse fieldWithErrors. Dieses Verhalten kannst Du auch
überschreiben. Google mal nach field_error_proc. Dann begibst Du Dich
allerdings schon recht tief ins System. Vorher solltest Du wirklich ein
paar Tutorials nachvollziehen.
ehm, ok - ich vergaß leider eine wichtige Sache zu erwähnen. In beiden
Formularen sind Textfeld, die in beiden Formularen korrekt rot umrandet
werden.
Das Problem betrifft nur Drop-Down-Felder.
ich hab’ das gleiche Problem, hast du schon die Lösung gefunden?
Ich vermute dass rails meine select helper aus app/helpers nicht richtig
erkennt, ich bekomme zwar eine meldung in <%= error_messages_for aber
keine fieldWithErrors class
lg,
gral
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.