问题: 旧密码无论是否输入、输入是否正确,都提示“旧密码不能为空。”
使用版本: commit b291026612a3bbc0a658806b16056edc6616aa52 Author: Jason Lee [email protected]: Wed Jun 26 10:16:27 2013 +0800
不知道有没有遇到这个问题的?
是 bug, 论坛在修改密码逻辑在 AccountController 如下
if resource.update_with_password(account_update_params)
但是在 ApplicationCotnroller 中重写了 account_update_params 的实现,如下
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(*User::ACCESSABLE_ATTRS) }
而 User::ACCESSABLE_ATTRS 中没有 current_password,这就导致 account_update_params 中的 current_password 始终被 Rails4 的 Striong Parameters 机制过滤掉。就出现了这样的问题。
User::ACCESSABLE_ATTRS
已经提交了 Pull Request,可参考 https://github.com/ruby-china/ruby-china/pull/189
#1 楼 @reyesyang 谢谢哦。我还是对 ruby-china 的代码了解的太少。