2011-08-03 93 views
8

我有一个应用程序有一个自定义注册控制器,名为users_controller,因为只有管理员才能创建用户。我想让用户通过输入旧密码并输入新密码来更改他们的密码,我发现:https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-password但它没有提供足够的详细信息。设计,允许用户更改密码

我需要在我的路线中放什么?

我需要在哪里以及在我的视图中放置什么?

回答

19

如果你有一项模型的用户,可以使用此路径路由到更改密码的页面。

edit_user_registration_path 

在你看来只是用这个作为:

<%= link_to 'Change Password', edit_user_registration_path %> 

这应该做的伎俩,它为我工作。

6

我已经找到了soulution并有固定的这个在Devise wiki

+0

那么..你会与更具体的链接分享?但是,谢谢我在那里查找:) –

+1

@DavidMauricio这是一个老版本的Devise。当前版本可以执行'''@ user.update_with_password(params [:user])''' –

+1

这里有一个实际信息的链接:https://github.com/plataformatec/devise/wiki/How-为了: - 允许用户编辑他们的密码,它的相当长的时间我会逐字地复制它。 – Soup

0

这还不够,艰难。您必须在模型中添加attr_accessor :current_password,如here中所述。