5

나는 Devise's instructions for using usernames in addition to emails에이어서 로그인했습니다. 사람들을 제외한 훌륭한 작품은 중복 된 사용자 이름으로 가입 할 수 있습니다. 저장되는이 사용자를 금지레일스 용 Devise의 고유 한 사용자 이름

1 오류 :

Email has already been taken 

내가 원하는 어떤 사람이 중복 된 이메일 주소로 가입하실하려고하면, 그들은 가입 페이지에서이 오류 메시지가 표시된다 사용자 이름과 매우 비슷합니다. 어떻게 구현합니까?

답변

6

고유성 검사기를 사용해야합니다. user.rb에 다음을 추가

validates_uniqueness_of :username 

more about this validator

+0

완벽한이 오류 메시지가 내가 될 것이라고 기대 거라고 정확히 무엇 : "사용자 이름이 이미 촬영되었습니다." –

+0

나는 당신이 당신의 사용자 이름을 바꿀 때 작동하지 않을 것이라고 생각하고 다시 그것을 변경하고 싶다. 즉, 당신이 당신의 프로파일을 편집하고 싶을 때이다. 예를 들어 사용자 이름을 abc1에서 abc1으로 변경하려면 작동하지만 abc로 다시 변경하고 업데이트 버튼을 누르면 'Username has already takened'오류가 발생합니다 – idjuradj

+0

@ Nicholas 저는 여러분이 코드에 두 개의 모델을 생성하고 있거나 다른 문제가 있다고 생각합니다. –