我是 Rails 和设计的新手,所以我试图了解发生了什么。我正在关注允许用户编辑自己的密码的设计 wiki,可在此处找到:https ://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-password 。
我感到困惑的是,即使我在我的模型中使用 :validatable,只要我完成 current_password,即使我将 password/password_confirmation 留空,我似乎也可以提交表单。似乎这与在validatable.rb中只有在 !password.nil? 每行 54。
所以我决定在提交表单时查看 debug(params) ,如果我将 password/password_confirmation 字段留空,那么 password/password_confirmation 根本不会出现在 params 哈希中(尽管 password.nil? 是真的?)。
我不明白为什么会这样?即使我将密码字段留空,密码是否不应该像任何其他字段一样出现在参数中,如“密码”=>“”?由于我使用自己的控制器操作来处理表单,所以密码不在参数中是怎么回事?