我需要获得用户注册表格的帮助才能验证password和password_confirmation完全匹配。

当前,该表单将传递输入到数据库的密码摘要字段中的数据,并将接受password_confirmation字段中的任何输入,并且不会出现任何错误。

我的代码如下:

模型-user.rb

class User < ApplicationRecord

    before_save { self.email = email.downcase }
    #attr_accessible :user_name, :email
    validates_confirmation_of :password
    has_secure_password

    validates :user_name, presence: true, length: { maximum: 25 }
    VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
    validates :email, presence: true, length: { maximum: 255 }, format: { with: VALID_EMAIL_REGEX }
    validates :password, presence: true, confirmation: true, length: { minimum: 6 }

    has_many :trips
    has_many :countries, through: :trips

end

视图-new.html.erb

<div class="container">
  <h1 class="text-center" style="margin-top: 10px;" >Sign up</h1>
  <div class="row">
    <div class="col-md-6 offset-md-3 ">
      <%=form_for(@user) do |f| %>
      <%= render 'shared/error_messages' %>
      <div class="form-group">
        <%= f.label :user_name, "Username" %>
        <%= f.text_field :user_name, class: "form-control" %>
      </div>

      <div class="form-group">
        <%= f.label :email %>
        <%= f.email_field :email, class: "form-control" %>
      </div>

      <div class="form-group">
        <%= f.label :password %>
        <%= f.password_field :password, class: "form-control" %>
      </div>

      <div class="form-group">
        <%= f.label :password_confirmation, "Password Confirmation" %>
        <%= f.password_field :password_confirmation, class: "form-control" %>
      </div>

      <div class="form-group">
        <%= f.submit "Create an account", class: 'form-control btn btn-primary' %>
      </div>
      <% end %> 
    </div>
  </div>
</div>

我的gemfile中也有bcrypt -v 3.1.7。 如果需要其他任何信息,请告诉我,我们很乐意提供。

#1楼 票数:2 已采纳

我认为您没有得到password_confirmation,为此您应该添加

validates :password_confirmation, presence: true

另外,在您的控制器中,应将:password_confirmation列入许可部分。

验证确认仅在password_confirmation不为null时才进行验证。

  ask by Cory L translate from so

未解决问题?本站智能推荐:

1回复

RubyOnRails使用RSpec测试用户模型-password和password_confirmation无法正常工作

这是我的第一篇文章。 我开始学习Ruby和Ruby On Rails框架。 我想使用RSpec测试用户模型,并且密码和password_confirmation的通过验证存在问题。 代码: https : //github.com/paw3lgora/gCMS/blob/master/
1回复

巫术用户注册错误,无效的属性password_confirmation

我不断收到错误消息,指出无效的属性password_confirmation。 我不知道我在做什么错。 谁能解释在巫术用户控制器中创建用户需要传递哪些安全参数? 我不断收到错误 我的控制器 我的规格
1回复

将has_secure_password的password和password_confirmation设置为oauth令牌是否不安全?

因此,当前无需编写一堆代码来解决在OmniAuth中使用has_secure_password的问题,我只是将password和password_confirmation设置为OAuth令牌,该令牌将在创建用户时由twitter / facebook /无论如何返回。 我的问题是,这是不安全的
1回复

匹配器是否应使用FactoryGirl进行测试,并且未设置password_confirmation?

我正在使用使用FactoryGirl创建的实体,通过Shoulda-matchers测试我的帐户模型。 这两个文件的代码如下所示: 测试文件 厂 我的错误如下: 我正在使用应检查密码确认的装置。 我知道这可能是因为有些愚蠢,但我真的不知道这是怎么回事。
2回复

未定义的方法`password_confirmation='rails5

我有 ruby​​ on rails API 到目前为止,逻辑是设计密码重置这里是用于查找用户和休息密码的代码块 这是android向API发送参数 所以深入挖掘我拿了令牌并启动了 rails 控制台。 更新 我在部署的代码中做错了什么。 任何人请提前告知谢谢
2回复

Rails:如果给出password_confirmation,请确保存在密码

我正在研究Ruby on Rails教程,并在10.1.2的练习中-编辑失败我被要求测试应用程序正确捕获无效的表单提交。 也许我做的运动量过彻底的-我发现,这是“有效”提交nil用非密码nil password_confirmation。 我以为has_secure_password会抓
1回复

设计,空白password_confirmation

需要进行ajax侧面注册。 创建的RegistrationsController: 注意,如果我没有在XHR中传递该字段,或者该字段为空,并且Angular在执行$ http.post之前未收集它,则该模型不会验证密码的确认 在Angular中$scope.reg = {'passwo
1回复

Rails3RegexpError(正则表达式太大:/password|password_confirmation)

我将Rails 3.0.0与Authlogic 2.1.6结合使用,有时会收到以下错误消息: RegexpError(正则表达式太大:/ password | password_confirmation .... 结果导致内部服务器错误,我必须重新启动服务器才能使其再次工作。 有人知