Forms auf mehrer Seiten valdieren

Hallo zusammen

Ich habe folgendes Problem:
Die Daten für mein Modell stelle ich in mehreren Forms, die über mehrer
Seiten
verteilt sind, zusammen. Leider werden die Eingaben erst validiert, wenn
das
Ganze im Modell gespeichert wird.
Ich möchte aber nach jeder Seite gleich valdieren, sodass bei einer
falschen
Eingabe auch gleich die entsprechende Seite angezeigt wird.

Weiss jemand einen Rat, wie man so was hin kriegt?

Besten Dank!

Am 17.11.2007 um 14:38 schrieb Pa Sc:

Weiss jemand einen Rat, wie man so was hin kriegt?

ganz hässlich, die Teildaten in der Session abspeichern.

Besser, den ganzen Validations ein :if mitgeben, ein Beispiel
aus meinem UserModel:

validates_uniqueness_of :login, :if => Proc.new{|u|
u.is_guest?}, :message => _(‘Login is missing.’)

Sinn war, nur so nebenbei, GuestUser anzulegen die dann hinterher
erst komplettiert
werden, oder gar nicht. Frag mich nicht warum das Ding nicht ohne
Proc funktioniert hat.
Weiß das jemand?

ciao, tom


Thomas R. “TomK32” Koll <> http://tomk32.de <> http://ananasblau.de
just a geek trying to change the world
Skype: TomK32

validates_uniqueness_of :login, :if => Proc.new{|u|
u.is_guest?}, :message => _(‘Login is missing.’)

Kannst du mir erklären, welche Funktion “Proc.new” hat?

Hallo,

zunächst mal gibts 2 direkte Möglichkeite um models teilweise zu
validieren. Den einen hat Thomas schon gesagt, nämlich mit :if.
Alternativ kann man auch im controller sagen dass nur bestimmte
attribute validiert werden sollen. Da muss man dann allerdings rails ein
bisschen anpassen, oder aber ein plugin nutzen (zB
http://expressica.com/plugins/validate_attributes/ - nutze ich selber
aber nichh kann also nicht sagen ob gut oder schlecht).

Thema Proc.new: Das is das selbe wie proc oder lambda. nimmt nen block
und gibt ne anonyme funktion zurück (inkl. closure die in diesem
beispiel aber nicht benötigt wird). der code in dieser funktion wird
erst aufgerufen wenn die validierungen laufen: wenn die funktion dann
false zurückliefert, wird die entsprechende validierung auf diesem
attribute nicht ausgeführt.

überigens kann man das beispiel vereinfachen, und stattdessen diese
variante nutzen:

validates_uniqueness_of :login, :if => :is_guest?, :message =>
_(‘Login is missing.’)

gruß
Thomas

Da muss man dann allerdings rails ein bisschen anpassen, oder aber ein
plugin nutzen (zB

http://expressica.com/plugins/validate_attributes/ - nutze ich selber
aber nichh kann also nicht sagen ob gut oder schlecht).

Vielen Dank für deine schnelle Antwort!
Das Plugin “http://expressica.com/plugins/validate_attributes” ist genau
das, wonach ich gesucht habe.
Leider funktioniert die Installation unter Windows aber irgendwie nicht.
Meine Applikation muss ich leider unter Windows erstellen…

Hat schon mal jemand dieses Plugin unter Windows benutzt?

Gruss
Pascal

alternativ gibt’s auch noch das validatable-gem von jay fields. dort
kannst du deine validations in gruppen einteilen:

On 17/11/2007, at 16:08, Pa Sc wrote:

nicht.
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Blog – Upstream - Agile ← blog
http://autoki.com/profile/alex ← autos 2.0
http://kommt-mit.de ← reisen 2.0