Недавно я создал способ изменить текущий пароль пользователя, однако после сохранения записи мой UserSession.find возвращает nil, я попытался написать UserSession.new ({...}) .save без везения, какое-либо предложение о том, как решить эту проблему?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: Извините, я этого не понял: не записывает ли запись моей модели пользователя? save фактически возвращает true, поэтому он должен изменить данные в базе данных (и для последующего входа/выхода из системы пароль фактически изменяется). Любое предложение о том, как каким-то образом восстановить мою сессию? –
Когда пользователь 'UserSession.find' возвращает нуль? В последующих звонках? –