gpt4 book ai didi

ruby-on-rails - Rails 中的密码不能为空(使用 has_secure_password)

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:22 24 4
gpt4 key购买 nike

我是 Rails 的新手,我知道 StackOverflow 上已经存在很多关于这个问题的问题,但我尝试了几乎所有的解决方案,但没有一个解决方案适合我。

我正在尝试使用 has_secure_password 在我的 rails 项目中实现身份验证,并且我遵循了 rails 文档中提到的所有步骤。提交创建用户表单后,即使我在输入框中输入密码并确认密码值,我仍收到“密码不能为空”错误消息。

如果我遗漏了什么,请提出建议。

我遵循的步骤是 -1) 在 gem 文件中添加以下行 - gem 'bcrypt',要求:'bcrypt'2)捆绑安装3)我的模型代码-

class User < ActiveRecord::Base
validates :name, presence: true, uniqueness: true
has_secure_password
end

4) 我的 View 代码 -

<div>
<%= f.label :name %>:
<%= f.text_field :name, size: 40 %>
</div>
<div>
<%= f.label :password, 'Password' %>:
<%= f.password_field :password, size: 40 %>
</div>
<div>
<%= f.label :password_confirmation, 'Confirm' %>:
<%= f.password_field :password_confirmation, size: 40 %>
</div>
<div>

5) 我的 Controller 代码 -

def create
@user = User.new(user_params)

respond_to do |format|
if @user.save
format.html { redirect_to users_url,notice: "User #{@user.name} was successfully created." }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end

最佳答案

非常感谢大家帮助我。我能够解决这个问题。

我在 Controller 中添加了以下代码行

 wrap_parameters :user, include: [:name, :password, :password_confirmation]

文档- http://api.rubyonrails.org/classes/ActionController/ParamsWrapper.html

这解决了我的问题。

关于ruby-on-rails - Rails 中的密码不能为空(使用 has_secure_password),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30632639/

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