我正在向使用 Authlogic 的 Rails 应用程序添加密码重置功能。我在这里遵循指南:http: //www.binarylogic.com/2008/11/16/tutorial-reset-passwords-with-authlogic/一切都按照我的意愿进行,除了一件事:密码重置表格接受空白密码并且根本不更改它们。
我一直在四处寻找,并了解到这是预期的默认行为,因为它允许您让用户编辑表单,只有在用户输入新密码时才更改用户密码,否则忽略它。但在这种情况下,我特别想在用户最初注册时强制验证密码。我已经为这个问题找到了两种可能的解决方案,但无法弄清楚如何实现它们中的任何一个。
1) 有人在 Google Groups 上问过同样的问题:
Ben 的回应是用来@user.validate_password = true
强制验证密码。我试过这个,但我得到一个未定义的方法错误:undefined method 'validate_password_field=' for #<User>
.
2)似乎有一个名为 Authlogic 的配置选项ignore_blank_passwords
。它记录在这里:
模块:Authlogic::ActsAsAuthentic::Password::Config#ignore_blank_passwords
这看起来可行,但我的理解是,这是您acts_as_authentic
在用户模型中的初始调用中使用的全局配置选项,我不想在应用程序范围内更改它,因为我确实有定期编辑我希望默认忽略空白密码的用户的表单。
有人找到解决方案吗?我validate_password=
在 Authlogic 1.4.1 的更改日志中看到,从那时起就没有任何关于它的内容被删除。我只是不正确地使用它吗?有没有办法ignore_blank_passwords
在每个请求的基础上使用?