2016-09-29 3 views
1

ich die folgende Gültigkeitsregel in einem ModellBind Fehlermeldung auf einem anderen Attribut

validates :csv_fingerprint, uniqueness: { message: "CSV was already uploaded." } 

In der Formularansicht (simple_form) haben, erzeugt der folgende Code die Datei-Upload-Feld:

= f.input :csv, as: :file 

Die Validierung funktioniert, aber die Fehlermeldung wird nicht im Upload-Feld angezeigt. Ich denke, der Grund ist, dass die Validierung für lautet: csv_fingerprint und das Formularfeld ist : csv.

Wie kann ich die Validierungsregel angeben, dass die Nachricht im Feld : csv angezeigt werden soll?

Antwort

1

können Sie f.error verwenden:

= f.input :csv, as: :file 
= f.error :csv_fingerprint 

Sie können auch Fehler für das Attribut wie folgt überprüfen:

errors_for(@model, :attribute) 

Sie dann diese und zeigt sie an laufen kann.

Noch ein anderer Weg Objekts Fehler zu erhalten: @model.errors.on(:attribute)

+0

Dank. Daher gibt es im Validator keine Option, ein Nachrichtenattribut anzugeben. Sie müssen in die Ansicht gehen. – Christian

+0

@Christian ist das eine Frage? Weil ich mir nicht sicher bin, ob ich es trotzdem beantworten kann :) –

+1

@Christian model's Validatoren arbeiten normalerweise grob auf Datenbankspalten. Und die Verantwortung dafür, wie Sie Validierungsfehler anzeigen, liegt auf der Ansichtsebene. –

Verwandte Themen