我已经按照 Railscast 第 250 集进行了修订,以使用 has_secure_password 创建用户身份验证,效果很好。但是,当我尝试更新用户配置文件时,我显然遇到了问题,因为它需要密码和密码确认。
显然没有办法直接覆盖它,所以我创建了一个名为 secure_password.rb 的文件,我将它放入了我的 config/initializers 文件夹并复制了预先存在的文件的内容。
我的问题是 - 有没有办法向这个文件传递一个条件来说明控制器操作更新/编辑是否不需要密码和密码确认?
我当前的代码可以在下面找到。
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