5

Ich folgte Devise's instructions for using usernames in addition to emails für Anmeldungen. Funktioniert gut, außer Leute können sich mit doppelten Nutzernamen anmelden. Wenn jemand versucht, mit einer doppelten E-Mail-Adresse zu registrieren, werden sie mit dieser Fehlermeldung auf der Anmeldeseite präsentiert:Unique Benutzernamen in Devise für Rails

1 Fehler der Benutzer untersagt, gespeichert werden:

Email has already been taken 

Ich mag etwas sehr ähnlich für Benutzernamen. Wie implementiere ich das?

Antwort

6

Sie sollten den Eindeutigkeits-Validator verwenden. In user.rb folgenden in:

validates_uniqueness_of :username 

more about this validator

+0

Perfect, die Fehlermeldung ist genau das, was ich gehofft hatte, es wäre: „Username bereits aufgenommen wurde“. –

+0

Ich denke, das wird nicht funktionieren, wenn Sie Ihren Benutzernamen ändern und dann ändern möchten, das heißt - wenn Sie Ihr Profil bearbeiten möchten. Zum Beispiel, wenn Sie Ihren Benutzernamen von abc zu abc1 ändern möchten, wird es funktionieren, aber wenn Sie es zurück zu abc ändern und die Update-Taste drücken möchten, erhalten Sie den Fehler 'Benutzername wurde bereits vergeben' – idjuradj

+0

@ Nicholas Ich glaube, du erstellst zwei Modelle in deinem Code oder es gibt ein anderes Problem. –

Verwandte Themen