2014-09-01 5 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 

Email поле работает без каких-либо проблем. Здесь моя страница просмотра.

<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> 

Я попытался ввести более шести символов с/без символов и цифр. Если поле пароль и подтвердите поле одинаковы или нет это же не имеет значения, каждый раз, когда я получаю что-то подобное enter image description here

«Gecerli бир Deger giriniz» означает: «Пожалуйста, введите действительное значение»

Кто-нибудь знает, что Я должен делать?

ответ

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

Указав pattern: :password вам требуется пароль пользователя, чтобы быть буквально «Пароль». Чтобы указать длину, вы должны использовать '.{3,}' вместо нравится:

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

Берегись! У вас такая же проблема с электронной почтой, что вам нужно ввести именно слово «email» в поле. Похоже, что gem «html5_validators» свяжет проверки модели Rails с проверками ввода HTML5, и вам не придется настраивать вручную проверки на полях HTML - https://github.com/amatsuda/html5_validators

0

Попробуйте удалить "pattern:: password" из обоих полей.

Смежные вопросы