gpt4 book ai didi

ruby-on-rails - 表单提交后参数为空

转载 作者:行者123 更新时间:2023-12-04 06:01:51 25 4
gpt4 key购买 nike

我有一个 from,用户可以在其中更改他们的密码。现在,我还没有做任何关于更新密码的事情,因为我的表单出于某种原因没有传递参数。之前,我给你代码,只是为了让你知道,你会看到 puts inside command 用于调试目的。

密码形式:

<div class="title">Change Password</div>
<div class="password">
<%= profile_error_messages_for(@profile) %>

<%= form_for :user, url: change_password_path do |f| %>
<%= hidden_field_tag 'attribute', 'password', id: nil %>
<div class="input-box">
<%= label_tag(:current_password, 'Current Password') %>
<%= f.password_field :current_password, class: 'form-control input-md input-width-large' %>
</div>
<div class="input-box">
<%= label_tag(:password, 'New Password') %>
<%= f.password_field :password, class: 'form-control input-md input-width-large' %>
</div>
<div class="input-box">
<%= label_tag(:password_confirmation, 'Password Confirmation') %>
<%= f.password_field :password_confirmation, class: 'form-control input-md input-width-large' %>
</div>
<%= submit_tag 'Change Password', class: 'btn btn-success btn-md input-width-large' %>
<% end %>
</div>

配置文件 Controller :

elsif params[:attribute] == 'password'
puts 'params: ' + params[:current_password].to_s

puts 'here 1'
if @profile.password_match?(params[:current_password])
puts 'here 2'
else
puts 'here 3'
render 'edit'
end
end

用户模型:

  def password_match?(entered_password = '')
puts 'Password: ' + entered_password.to_s
puts salt
password == User.hash_with_salt(entered_password, salt)
end

在我尝试打印出值的地方,它是空的。我们甚至不需要检查模型。因为当我在 Controller 中输入它时,它也是空的。

puts 'params: ' + params[:current_password].to_s

3 天以来我一直在研究这个问题。请有人帮助我 =)。谢谢。

最佳答案

如果您不确定某个字段是否存在或它在 params 返回的散列中的位置,最好检查 params 本身。

当您使用 form_for 帮助程序时,提交的字段将包含在您为 form_for 传入的资源的小写模型名称(或简称为名称)下.因此,在您的情况下,由于您已经给出了 :user 名称,因此 params 返回的散列将包含一个键 'user',在该键下所有您的字段将以其给定的结构出现。所以你应该使用:

params[:user][:current_password]

关于ruby-on-rails - 表单提交后参数为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982482/

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