Я использую devise_token_auth 1.1.3 и вместе разрабатываю 4.4.3 в своем приложении Rails и пытаюсь удалить текущего пользователя. Мои пользователи называются «сотрудники». Проблема в том, что когда я пытаюсь удалить текущего пользователя, он пытается обновить заголовок авторизации для пользователя, которого не существует.
def destroy
staff = Staff.find(params[:id])
if current_staff.entity == staff.entity
staff.destroy
render json: { success: "Staff Member Successfully Deleted" }, status: 200
else
render json: { success: "Staff Member failed to delete" }, status: :unprocessable_entity
end
end
В пределах этой строки рендера json он попадает в эту строку в devise_token_auth и сбои;
devise_token_auth (1.1.3) app/controllers/devise_token_auth/concerns/set_user_by_token.rb:105:in `update_auth_header'
Обновление: попробуйте и используйте контроллер регистрации для удаления пользователя
Я установил текущие переопределения маршрута
mount_devise_token_auth_for 'Staff', at: 'auth', controllers: {
sessions: 'sessions',
registrations: 'registrations'
}
И переопределить контроллер регистрации следующим образом:
class RegistrationsController < DeviseTokenAuth::RegistrationsController
def destroy
puts 'test'
byebug
end
end
Теперь в моем тесте, если я позвоню
delete "/auth/#{staff.id}"
Он вообще не попадет в бибуг.