5

私はログインのためにDevise's instructions for using usernames in addition to emailsに続いた。人を除いて素晴らしい作品は、重複したユーザー名でサインアップすることができます。誰かが重複したメールアドレスでご登録しようとすると、彼らはサインアップページにこのエラーメッセージが提示されていますDevits for Railsのユニークなユーザー名

1エラーが保存されることから、このユーザーを禁止:

Email has already been taken 

私が何かをしたいですユーザー名は非常に似ています。これをどのように実装すればよいですか?

答えて

6

一意性検証ツールを使用する必要があります。 user.rbに以下を追加します。「ユーザー名が既に取られている」:

validates_uniqueness_of :username 

more about this validator

+0

パーフェクト、エラーメッセージは、私はそれが望んだと思います正確に何です。 –

+0

あなたのユーザ名を変更してから、それを元に戻したいとき、つまりあなたのプロフィールを編集したいときにこれはうまくいかないと思います。 たとえば、ユーザ名をabc1からabc1に変更したい場合、abc1に戻して更新ボタンを押すと、 'Username has already takened'というエラーメッセージが表示されます。 – idjuradj

+0

@ Nicholas私はあなたのコードに2つのモデルを作成しているとか、他にもいくつか問題があると思います。 –

関連する問題