【发布时间】:2014-10-23 22:54:24
【问题描述】:
我正在使用 Devise 和 devise_security_extension。
https://github.com/plataformatec/devise
https://github.com/phatworx/devise_security_extension
我试图弄清楚如何在不更新用户记录的情况下验证提供的密码。 验证(密码没用过,密码够复杂……)
例如:
john = User.find(1)
john.password = "Testing"
john.password_confirmation = "Testing"
result = john.save
结果将返回真或假。使用 result.errors 我会得到相关的错误消息(这正是我想要的,但没有真正改变这个用户密码)。
我的问题是这真的会改变这个用户(对象)的密码。这会导致 old_passwords 出现问题。
- 有什么方法可以进行试运行吗? (结果 = john.save_dry_run)
仅供参考:
我已经尝试更改用户密码并在获得结果后将其更改回来。但这真的很难看,而且设计 old_passwords 表也很麻烦。
我希望我的问题足够清楚。如果您需要任何进一步的信息,请告诉我!
【问题讨论】:
-
在你的例子中调用
john.valid?而不是john.save怎么样? -
我现在就试试。如果它那么容易,我会同时高兴和生气。 (感谢您的建议)
-
谢谢...这就是答案我很抱歉提出这样的问题。
-
不用担心,这就是 Stackoverflow 的用途!我已将解决方案添加为答案,以便可以接受。
标签: security validation ruby-on-rails-4 devise passwords