Hi, ich habe einigen Ärger mit dem date_select helper. Ich lasse die drei Felder für die Eingabe eines Geburtsdatums mit <%= form.date_select(:geburtstag, :start_year=>1910, :include_blank=>false, :order=>[:day, :month, :year]) %> ausgeben. Wenn ich nun prüfen will, ob die Felder leer sind (validates_presence_of) oder der user volljährig ist wird nur das Datumsfeld als fehlerhaft markiert. Um das zu umgehen habe ich überlegt den div, der die felder enthält komplett rot zu färben. Gibt es dazu eine elegante Möglichkeit? Ich habe überlegt zu überprüfen, ob error_messages_for die fehlermeldung enthält, die ich hinzufüge, wenn die altersvalidierung nicht klappt. In dem Fall soll der div rot werden. Aber auch hier scheitert es an der Umsetzung. ich weiß nicht wie ich prüfen soll, ob die Fehlermeldung ausgegebwn wird. Danke schon mal Kim
on 13.05.2008 15:59
on 14.05.2008 22:39
Hallo Kim, bist du schon weitergekommen? Ansonsten hätte ich vielleicht ein Tipp zu den Fehlermeldungen: http://www.softiesonrails.com/2008/4/23/better-messages-for-activerecord-validation-errors Ansosten kannst du dir unter /config/initializers eine Datei ablegen mit folgendem: # Ändern des fehlenden Eingabefelds ActionView::Base.field_error_proc = Proc.new do |html_tag, instance_tag| "<span class='error'>#{html_tag}</span>" end Hier kann definiert werden, wie das Feld im Fehlerfall gerendert wird. Hast du das mit der Altervalidierung hinbekommen? HTH und GrüßeBeate
on 15.05.2008 09:33
Guten Morgen, die Internetadresse bringt mich nicht weiter, trotzdem danke ;) Nachdem ich mir die Zähne daran ausgebissen habe und nie zum gewünschten Ergebnis gekommen bin habe ich das Problem nicht mit rails, sondern mit Javascript gelöst: Ich habe einfach ein Textfeld mit dem Attribut readonly genommen. Das lasse ich dann von einem Javascrip Kalender füllen. Der Kalender lässt nur korrekte Daten zu (also volljährig und nicht z.B. den 31.2.), die dann dank readonly nicht vom User verändert werden können. Es hat anfangs noch ein bisschen gezicke mt dem Speichern in die Datenbank gegeben, aber jetzt läuft es so :) Ich finde es sogar eleganter, weil gar nicht die Möglichkeit besteht ein falsches Datum einzugeben. Irgendwie werde ich nicht warm mit rails :( Gruß Kim