2010-12-13 5 views
1

Ich habe ein Benutzermodell, das validates_uniqueness_of :login, :e-mail. Wenn ein Benutzer seine Informationen in user/new.html.erb eingibt, kann die Erstellungsaktion aufgrund eines der beiden Felder fehlschlagen.Flash [: Fehler] basierend auf validates_uniqueness_of: Login,: E-Mail

Wie kann ich meinen Flash anpassen, um dem Benutzer hilfreicher zu sein und ihnen zu sagen, welche (oder beide) Felder sie beim nächsten Mal ändern müssen?

Antwort

0
flash[:error] = @user.errors.full_messages.to_sentence 

sollte die Aufgabe erledigen. Aber ich würde empfehlen, dass Sie den Fehler direkt neben dem Feld anzeigen, das ungültige Daten enthält. Plugins wie formtastic erledigen das automatisch für Sie.

Check the API für weitere Ideen.

+0

Das gibt mir: '[" E-Mail wurde bereits vergeben "," E-Mail wurde bereits vergeben "," Login wurde bereits vergeben "," Login wurde bereits vergeben "]'. Wie kann ich es lesbarer machen? – sscirrus

+0

Haben Sie "to_sentence" von ActiveSupport darauf angewendet (ich habe es während einer Bearbeitung hinzugefügt)? Es sollte dieses Array in "E-Mail wurde bereits erstellt und Login wurde bereits vergeben" umgewandelt werden. –

+0

Wenn Sie keine Weiterleitung durchführen, sollten Sie auch flash.now [: error] verwenden, um zu verhindern, dass sie erneut auf der nächsten Seite angezeigt wird (Flash wird für die nächste Anfrage gespeichert, flash.now ist das nicht). –

Verwandte Themen