DataMapper-Modelle ermöglichen benutzerdefinierte Validierungen von zwei Formen: die für eine Eigenschaft spezifischen und Gesamtvalidierungen von Objekten. Zum Beispiel:Wie kann ich DataMapper-Fehler auflisten, die nicht an eine Eigenschaft gebunden sind?
# Validates the `name` property with the `check_name` method;
# any errors will be under `object.errors[:name]`
validates_with_method :name, method: :check_name
# Validates the object overall with the `overall_soundness` method;
# any errors will be under `object.errors[:overall_soundness]`
validates_with_method :overall_soundness
Die zweite Art Sinn für Validierungen macht, die mehrere Eigenschaften beinhalten, aber es stellt auch ein Problem: Fehler für den Benutzer.
Ich möchte alle Fehler anzeigen, die nicht an eine bestimmte Eigenschaft an der Spitze der Formularseite angehängt sind, aber ich sehe keine einfache Möglichkeit, sie aufzulisten.
Wie kann ich eine Liste von nicht eigenschaftsspezifischen Fehlern erhalten?
(Ich verwende DataMapper 1.2.0)
Oder Sie könnten nur mit Namen, wie 'special_overall_soundness' Ihre speziellen Fehler holen. Die Dokumentation für "validates_with_method" ermutigt Sie, sie mit jeweils einer Eigenschaft/Methode zu verwenden. – ujifgc
Oder, wenn Sie Ihre Code-Unterbrechung auf DataMapper 1.3 möchten, könnten Sie Fehler von 'Model.validators.contexts auswählen [: default] .select {| k | k.kind_of? DataMapper :: Validations :: MethodValidator} ' – ujifgc
@ujifgc - Ich bin ** erklären ** die Validierungen einzeln, aber ich möchte sie alle an einem Ort für den Benutzer auflisten. Ich listet bereits feldspezifische Fehler neben dem Formularfeld auf. Ich möchte diese anderen alle in einer Liste an der Spitze. Außerdem: 'Model.validators.context [: default] .select {| k | k.kind_of? (DataMapper :: Validations :: MethodValidator} 'gibt alle Validierungen zurück und unterscheidet nicht zwischen feldspezifischen und anderen. Sie haben jeweils eine 'field_name'-Eigenschaft, aber' allgemeine 'Validierungen haben keine Null; haben ihren eigenen Namen, das hilft mir nicht. –