You are not logged in.

  • Login

1

Thursday, November 11th 2010, 4:01pm

Validierung

Hallo ihr :)

Folgendes Problem: Ich würde gerne validierungen in meine Rails-Anwendung einbauen.
Dazu habe ich gefunden: "validate" in 1000 Variationen.

Nun möchte ich meine eigene Methode zum validieren schreiben.
Zurück geben kann diese true (kein fehler), und false wodurch ein Fehler entstehen soll.

Nach ewigem rumprobieren und im Netzsuchen habe ich folgendes Probiert:

themenblock.rb

RubyOnRails Quellcode

1
2
3
4
5
validate :free_of_cycles?, :messages => "blabnla"
..
def free_of_cycles?
  return false
end


Was ich damit nur testen wollte ist, ob überhaupt irgendetwas passiert wenn bei free_of_cycle? false rauskommt.

Nun die Fragen:
1) Gibt es eventuell einen Validator der zwei Werte vergleichen kann?
2) Was muss mache ich denn so krass falsch das er überhaupt nicht anspringt? kann man irgendwo noch seinen "erwartungswert" oder soetwas angeben?

Danke euch :)

2

Thursday, November 11th 2010, 6:46pm

Also ich verstehe die Validators als eine Zusatzfunktion des Zusammenspiels zwischen Model und Views, um Eingaben (GUI/Console) zu validieren.
Die Methode zum Validieren gibt dabei nicht true oder false zurück, sondern eine Liste von Fehlern, falls das Validieren fehlschlägt. Schau dir hier mal Kapitel 6 und 7 an: http://edgeguides.rubyonrails.org/active…_callbacks.html

Was genau willst du denn prüfen? Ich kann das inhaltlich nicht erkennen da oben.

3

Friday, November 12th 2010, 7:44am

Hi,

ich hätte schwören können dass ich das mit errors.add schon probiert hatte >.<
Unglaublich sowas! Ich stell mich echt doof an :-P

Vielen Dank ;)

Ja richtig da oben habe ich den eigentlichen Code rausgeschnitten um aufs Wesentliche zu Sprechen zu kommen ;)
Geprüft wird ob es Zyklen in einer Spezialisierungshierarchie, durch das Einfügen eines neuen Elementes, gibt.
Funktioniert jetzt prächtig :)

4

Friday, November 12th 2010, 9:09am


... Ich stell mich echt doof an :-P


Nein nein, von der Logik her würde ich deinen Ansatz auch vorziehen. Die Idee mit den Fehlermeldungen erleichtert die Ausgabe.

Similar threads

Social bookmarks