我最近創建了一種更改當前用戶密碼的方式,但是在保存記錄後,我的UserSession.find返回nil,我嘗試寫入UserSession.new({...})保存沒有運氣,關於如何解決這個問題的任何建議?UserSession.find在更改密碼後返回nil
這是通過一個AJAX請求運行(這是UserSessionController下的方法)我的代碼,請注意:
高清
change_my_password
#print "--------------RECORD: #{current_user_session.record.as_json}-------- #{current_user_session.user.as_json}"
user = current_user
user_email = user.email
user_remember_me = user.remember_created_at
response = {
:success => false,
:message_code => Extjs::MessageCodes::ERROR,
:message => 'Si è verificato un errore',
:total => 0,
:root => []
}
if user.valid_password?(params[:old_password], true)
user.password = params[:new_password]
user.password_confirmation = params[:confirm_password]
response[:message] = 'La nuova password e la conferma non coincidono o sono troppo brevi'
if user.save
response[:success] = true
response[:message_code] = Extjs::MessageCodes::SUCCESS
response[:message] = 'Password modificata con successo'
end
else
response[:message] = 'La password precedente non coincide con quella attualmente in uso'
end
respond_to do |format|
format.extjson { render :json => response }
end
end
'record.save'只返回true或false以表示記錄是否被保存。因此'@ user_session'不會保存你新創建的記錄。 – krichard
@KaiKönig:對不起,我沒有得到這個:是不是記錄我的用戶模型記錄?保存實際上返回true,所以它應該改變數據庫上的數據(並且爲了後續的登錄/註銷,密碼實際上已經改變)。有關如何以某種方式重新生成會話的任何建議? –
什麼時候'UserSession.find'返回nil?在隨後的調用中? –