2012-10-24 52 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