2014-09-01 2 views
1

암호를 내 패턴으로 확인한 다음 데이터베이스에 추가하고 싶습니다. 너무 많은 종류의 입력 유형을 입력하려고 시도했지만 작동하지 않습니다. 어떤 오류도 발생하지 않았지만 데이터베이스에 아무 것도 추가 할 수 없습니다. 여기Ruby on Rails : 암호 확인이 제대로 작동하지 않습니다.

모델/user.rb

class User < ActiveRecord::Base 
has_secure_password 

...

validates :first_name, presence: true 
validates :last_name, presence: true 
validates :email, presence: true, 
        uniqueness: {case_sensitive: false}, 
        email: true 

validates :password, presence: true, 
      length: {minimum: 6} 
end 

이메일 필드는 아무 문제없이 작동합니다. 여기 내보기 페이지.

<div class="large-12 columns"> 
     <%= form.label :email %> 
     <%= form.email_field :email, required: true, 
            pattern: :email %> 
    <small class="error"> Invalid value</small> 
    </div> 

    <div class="large-6 columns"> 
     <%= form.label :password %> 
     <%= form.password_field :password, required: true, 
              pattern: :password %> 
    <small class="error"> Gecerli bir deger giriniz'</small> 
    </div> 

    <div class="large-6 columns"> 
     <%= form.label :password_confirmation %> 
     <%= form.password_field :password_confirmation, required: true, 
                pattern: :password %> 
    <small class="error"> Gecerli bir deger giriniz</small> 
    </div> 

기호와 숫자의 유무에 관계없이 6 자 이상을 입력하려고했습니다. 암호 필드와 확인 필드가 때마다 문제가되지 않습니다 동일 여부 같은 경우 그 뭔가를 얻을 enter image description here

'Gecerli BIR의 DEGER의 giriniz'의미 :

누구 무엇을 알고 '유효한 값을 입력하십시오' 내가해야 해?

답변

2
<%= form.password_field :password, required: true, 
              pattern: :password %> 

pattern: :password을 지정하면 사용자 비밀번호가 "비밀번호"로 지정되어야합니다. 당신이 '.{3,}'를 사용해야 길이를 지정하려면 대신 좋아 : 조심

<%= form.password_field :password, required: true, 
              pattern: '.{3,}' %> 

! 전자 메일과 동일한 문제가 있습니다. 사용자가 필드에 "전자 메일"이라는 단어를 정확하게 입력해야합니다. gem "html5_validators"는 Rails Model 유효성 검사를 HTML5 입력 유효성 검사로 바인딩하므로 HTML 필드에 수동 유효성 검사를 설정할 필요가 없습니다. https://github.com/amatsuda/html5_validators

0

두 입력란에서 'pattern : : password'를 삭제 해보세요.

관련 문제