Ruby on rails 拥有\u安全\u密码,不会创建属性
我正在尝试在我的Rails应用程序上使用Ruby on rails 拥有\u安全\u密码,不会创建属性,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试在我的Rails应用程序上使用has_secure_password和bcrypt(3.1.11) 以下是我在Ubuntu上的设置: 我安装了bcrypt,没有任何问题,并将其保存在我的gem文件中 我有一个密码\u digest:string供我在数据库中迁移的用户使用 我在我的用户模型中添加了has\u secure\u password 我没有收到任何错误,但是当我去创建一个用户时,它要求我输入一个password\u digest属性,而不是password和password\
has_secure_password
和bcrypt(3.1.11)
以下是我在Ubuntu上的设置:
密码\u digest:string
供我在数据库中迁移的用户使用has\u secure\u password
password\u digest
属性,而不是password
和password\u confirmation
为什么会这样?
是否应该具有安全密码
自动将用户更改为需要密码
和密码确认
,而不是密码摘要
不,您不存储密码
和密码确认
,只存储密码摘要
。您永远不想在数据库中存储纯文本密码
当您创建一个新用户时,您需要
User.create(password: 'something', password_confirmation: 'something', ..other fields..)
然后,has\u secure\u password
负责更新数据库中的password\u digest
在用户
模型中包含一些验证也是一个很好的规则
validates :password_confirmation, presence: true, on: :create
validates :password, confirmation: true
另外,别忘了在控制器中列出它们
def user_params
params.require(:user).permit(:password, :password_confirmation)
end
User.create(user_params)
您可能需要手动更改表单和/或
create
模板,以包含password\u confirmation
字段。请更仔细地查看has\u secure\u password docs maybe?谢谢您的回答,这澄清了问题。