gpt4 book ai didi

ruby-on-rails - rails : has_secure_password override

转载 作者:太空宇宙 更新时间:2023-11-03 16:32:24 24 4
gpt4 key购买 nike

我遵循了 Railscast episode 250 revised to create user authentication with has_secure_password 这很好用。但是,当我尝试更新用户配置文件时,我显然遇到了问题,因为它需要密码和密码确认。

显然没有办法立即覆盖它,所以我创建了一个名为 secure_password.rb 的文件,并将其放入我的 config/initializers 文件夹并复制了预先存在的文件的内容。

我的问题是 - 是否有任何方法可以将条件传递给此文件,以说明 Controller 操作更新/编辑是否不需要密码和密码确认?

我当前的代码可以在下面找到。

  def has_secure_password
gem 'bcrypt-ruby', '~> 3.0.0'
require 'bcrypt'

attr_reader :password

validates_confirmation_of :password
validates_presence_of :password_digest

include InstanceMethodsOnActivation

if respond_to?(:attributes_protected_by_default)
def self.attributes_protected_by_default
super + ['password_digest']
end
end
end

最佳答案

password_confirmation 明确设置为 nil 时,将不会检查确认验证。这在 Rails pull-request 中提到,这表明有一些条件值来决定是否需要 password_confirmation

在 Railscasts #250 中,我将简单地删除 password_confirmation 字段,并将用户 Controller 中的 create 操作更改为以下内容:

def create
@user = User.new(params[:user])
@user.password_confirmation = nil # Disables confirmation check
if @user.save
redirect_to root_url, :notice => "Signed up!"
else
render "new"
end
end

关于ruby-on-rails - rails : has_secure_password override,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com