如何在rails上的ruby中为登录用户实现更改密码功能?

时间:2012-01-12 19:28:38

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 rubygems

我的表单会有

当前密码: 新密码: 确认新密码:

我正在考虑实现这一目标的最佳方法。我如何确认当前密码是否正确,但使用的形式是否会更新我的密码?

我有我的身份验证方法,我可以将current_user的电子邮件与密码一起传递给密码以确认当前密码但是我将如何继续并使用相同的表单进行更新?如何知道当前密码已经确认。

这似乎是一个基本的事情,但我的思绪感觉它已经达到了障碍。

建议,提示非常感谢。

亲切的问候。

2 个答案:

答案 0 :(得分:2)

“我如何确认当前密码是否正确,但使用的形式是否会更新我的密码?”

最好的方法是使用Devise,Clearance,Authlogic或其他gem并使用这些示例。

那说如果你自己滚动但却被密码更改困扰,那么有两种方法:

提交表单(标准表单提交),如果密码更改有效,请更改下次显示的内容,最好通过控制器中设置的简单标志设置,控制视图在视图表单中显示的内容。

提交表单(ajax),如果密码更改有效,请使用javascript(比如jQuery)更改视图显示的内容 - 隐藏密码字段并显示您想要的其他字段再次设置simlpe标志来控制显示控制器。 你可以使用rjs来替换你想要的那些东西。

对于此答案的其他读者(OP可能已经知道这一点),如果密码是为了安全而进行哈希处理,例如MD5,我假设它是,然后你不知道它是什么,但你可以散列一次尝试并与散列版本(存储在数据库中)进行比较,如果它们匹配,则用户提供它们是相同的

答案 1 :(得分:1)

观看此视频:http://railscasts.com/episodes/274-remember-me-reset-password。它从头开始引导您完成所有事情。