2013-12-22 86 views
0

我使用的設計爲我的用戶帳戶,我會得到所有的確認,用戶密碼說明等; 但我有一個條件,如果用戶帳戶被鎖定(在我的方案中狀態爲false),他必須通過電子郵件獲得重置密碼鏈接。這個鎖定過程在其他控制器中編碼,所以我們不能使用設計助手。Unlock_instructions電子郵件

我的控制器的代碼:

DEF send_instruction

一個= []

if @answer1 
    a << '1' 
end 
if @answer2 
    a << '2' 
end 
if @answer3 
    a << '3' 
end 

if a.size <= 1 

    SiteMailer.unlock_user(current_user).deliver 

    current_user.update_attribute(:status,false) 

    destroy_user_session_path(current_user) 

    flash[:error]= "Your account is locked" 

    redirect_to new_user_session_path 

else 

    redirect_to user_dashboard_path 

end 

寄件人/ site_mailer.rb:

類SiteMailer <的ActionMailer: :乙ASE

包括設計::郵件程序::助手

缺省: 「[email protected]」 DEF unlock_user(用戶)

@user = user 

@url = "pwd_edit" 

mail(to: @user.email, subject: 'Your account has been locked') 

在郵件視圖:

嗨,

您的帳戶已被鎖定。編輯簡介: 「我的鏈接(edit_user_password_url(CURRENT_USER)」

當我經歷這個過程中,我得到 「找不到路線」 錯誤而我的路線是。正確的。請幫助我。

回答

0

這是因爲沒有current_user是當時在場,你應該試試這個,而不是

edit_user_password_url(@user) 
+0

如果我想使用像devise這樣的重置密碼令牌,有沒有其他選擇,或者我們可以在我的控制器方法中自定義? –

+0

明白了..我剛剛刪除了我的SiteMailer並添加了以下步驟:** current_user.send_reset_password_instructions ** –