Я пытаюсь изменить пароль пользователя, и он успешно менялся, но после этого он не позволяет мне что-то делать, потому что пользователь становится несанкционированным ... Возможно, мне не хватает части, которая повторно проверяет их.Изменение пароля пользователя в разработке
Это мой код, чтобы обновить свой пароль
def password
if current_user.valid_password?(params[:current_password])
current_user.password = params[:new_password]
if current_user.save
#sign them in
#tried doing this to sign them in again but didn't work
sign_in(:user, current_user)
response.headers['X-CSRF-Token'] = form_authenticity_token
response.headers['X-Pyne-Auth'] = current_user.authentication_token
render :json => {:success => true} and return
else
render :json => {:success => false, error: "Unexpected error while trying to save user. Please try again."} and return
end
else
render :json => {:success => false, error: "Your current password is incorrect. Please try again"} and return
end
end
Я могу обновить пароль, но есть проблемы с доступом приложения снова, поскольку пользователь становится несанкционированным.
Спасибо
Я собираюсь все точно так же, как в этой вики, и он не входит сюда, если '@ user.update (user_params)' ... просто переходит в else @Brian – Walker
Похоже, что 'update' не работает тогда. Есть ли что-нибудь на вашей консоли, что говорит о том, что препятствует обновлению? В качестве альтернативы вы можете посмотреть '@ user.errors.full_messages' в предложении else и посмотреть, что происходит. – Brian
Брайан, я делал это в своем контроллере пользователей, и я просто заметил, что у меня есть это на моих маршрутах: devise_for: users,: controllerlers => {: sessions => "api/v1/sessions", пароли: 'api/v1/passwords '},: path_prefix =>' api/v1'' Означает ли это, что я должен иметь это в одном из этих контроллеров или что-то в этом роде? – Walker