Ruby on Rails:密码确认无法正常工作

时间:2014-09-01 13:12:28

标签: ruby-on-rails ruby view password-confirmation

我想将密码确认为我的模式,然后将其添加到数据库中。我尝试输入太多类型的输入,但它不起作用。我没有收到任何错误,但我无法向我的数据库添加任何内容。

这是model / 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>

我尝试输入超过六个字符,带/不带符号和数字。如果密码字段和确认字段相同或不相同,那么每次我得到类似的东西都不重要 enter image description here

&#39; Gecerli bir deger giriniz&#39;意思是:&#39;请输入有效值&#39;

有人知道我应该做什么吗?

2 个答案:

答案 0 :(得分:2)

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

通过指定pattern: :password,您需要用户的密码字面上为“密码”。要指定长度,请使用'.{3,}'代替:

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

小心!您遇到与电子邮件相同的问题,您需要用户在字段中输入“email”字样。看起来gem“html5_validators”将使用HTML5输入验证绑定Rails模型验证,您不必在HTML字段上设置手动验证 - https://github.com/amatsuda/html5_validators

答案 1 :(得分:0)

尝试从两个字段中删除“pattern :: password”。