2011-08-10 55 views
17

在我的rails 3应用程序中使用设计,我想提供一个链接供用户编辑他们的密码。显示设计编辑密码屏幕

我有一个指向一个标准的链接:/用户/密码/编辑...登录以下

Started GET "https://stackoverflow.com/users/password/edit" for 127.0.0.1 at 2011-08-10 10:11:46 -0700 
    Processing by Devise::PasswordsController#edit as HTML 
    User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = 3 LIMIT 1 
Redirected to http://localhost:3000/ 
Completed 302 Found in 309ms 

输出为什么轨重定向?为什么我无法显示编辑密码页面?谢谢

+1

显示你的'routes.rb'和'PasswordController' – fl00r

+0

在flash消息中重定向的原因是什么?用户是否未登录,因为是的,如果您未登录并尝试编辑密码,它会将您重定向到root。 – numbers1311407

+0

@ numbers1311407其实问题是用户**已**登录。此操作仅适用于**未**登录,忘记密码并已收到重置密码令牌的用户。 –

回答

27

Devise::PasswordsController#edit适用于希望使用重置令牌更改其密码的未通过身份验证的用户。此重置令牌以前通过电子邮件发送给用户(重置密码说明)。如果用户已经登录,则此编辑密码页面将始终重定向到登录后路径,因为它不应供经过身份验证的用户访问。

我想你想要的是允许用户更改密码登录后。您必须使用Devise::RegistrationsController#edit

+2

如果我在注册控制器中使用其他用户配置文件信息的编辑操作,该怎么办?我想单独编辑用户个人资料信息(姓名,地址等)和密码更新 – Batman

+0

@Batman https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-他们的密码 –