部署 部署 ruby-china 遇到奇怪问题

robertyu · 2013年07月03日 · 最后由 robertyu 回复于 2013年07月04日 · 3303 次阅读

问题: 旧密码无论是否输入、输入是否正确,都提示“旧密码不能为空。”

使用版本: 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 机制过滤掉。就出现了这样的问题。

已经提交了 Pull Request,可参考 https://github.com/ruby-china/ruby-china/pull/189

#1 楼 @reyesyang 谢谢哦。我还是对 ruby-china 的代码了解的太少。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号