2012-10-24 46 views
0

我正在使用设计进行身份验证。如果忘记密码,被称为它要求的邮件地址,并发送一个链接到邮件,但是当我点击链接的邮件,我得到:重置密码链接要求用户登录

您需要登录或继续之前报名。

我怎样才能改变这种做法,在点击链接时,它要求一个新的密码?

UPDATE:

我已经改变了我的路线如下:

devise_for :users do 
    resources :users, :only => [:index, :new, :create, :edit, :update, :destroy] 
end 

回答

1

看来你改变控制器管理密码(Devise::PasswordsController默认情况下),并加入before_filter :authenticate_user!,你呢?然后你需要删除过滤器。

如果没有,您是否可以描述您所做的自定义?

更新:这是因为你的资源和设计的路线冲突。这里on a devise wiki你可以找到解决方案。

+0

我已经改变了我的路线 “devise_for:用户做 资源:用户:只=> [:指数:新:创建,编辑,:更新:摧毁] 结束” – logesh

+0

我不能在Rubyman的答案下写下评论,但因为你的用户资源,显示“找不到id = password的用户”。它会尝试调用您的“用户#显示”操作。 [在设计wiki上](https://github.com/plataformatec/devise/wiki/How-To:-Manage-users-through-a-CRUD-interface)你可以找到解决方案。 – evilguc

1

添加这行:

skip_before_filter :authenticate_user, :only => ['password_change_action'] 

password_change动作的控制器。

+2

它显示“无法找到用户id =密码” – logesh