我在我的 Rails 应用程序中同时使用 devise_token_auth 1.1.3 和 devise 4.4.3,我正在尝试删除当前用户。我的用户被称为“员工”。问题是当我尝试删除当前用户时,它会尝试为不存在的用户更新 auth 标头。
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}"
它根本没有击中byebug。