0
我想在使用has_secure_password和authenticate方法設置登錄/註冊和會話之後進行電子郵件確認。 我有一個用戶模型,並添加了一個確認的布爾值。當用戶創建時,我將他們的確認布爾值設置爲false,並向他們發送帶有鏈接的電子郵件。點擊鏈接可生成一個GET請求/用戶/:ID /確認,並執行在users_controller「確認」操作的代碼如下:has_secure_password防止將布爾值設置爲true
def confirm
@user = User.find(params[:id])
@user.update_attributes(confirmed: true)
if @user.save
sign_in(@user)
flash[:success] = "Your account has been successfully confirmed"
else
flash[:error] = "There has been a problem confirming your account "
end
redirect_to root_path
end
很簡單(我會做確認標誌後) 。我的問題是我的用戶永遠不會被保存。
@user.errors.full_messages
回報:
["Password is too short", "Password confirmation can't be blank"]
如何更改用戶對象,而無需修改自己的密碼,每次? 任何幫助將不勝感激。
謝謝!
...並且不保存兩次。 'update_attribute'已經保存 - 不需要調用'@ user.save'。取消後者並檢查'update_attribute'的結果。 – jdoe 2012-07-08 20:40:43
非常感謝Kyle。這工作。 – Myna 2012-07-08 23:02:49