Я использую React и Rails API. Чтобы сделать запрос из React, я использую библиотеку Ax ios, и код выглядит так:
const _deleteIssue = () => {
axios.delete(`${ROOT_API}/v1/issue/delete/${props.issue.id}`, {
headers: {
'Authorization': `Bearer ${authToken}`
}
}).then(res => {
props.updateProjectData()
}).catch(err => {
console.log(err)
})
}
Чтобы обработать этот запрос, я настроил для него маршрут, который выглядит следующим образом:
Rails.application.routes.draw do
concern :base_api do
# other routes
post 'issues/create', to: 'issues#create'
delete 'issue/delete/:issue_id', to: 'issues#delete_issue'
end
namespace :v1 do
concerns :base_api
end
end
Как видно из фрагмента кода выше, маршрут настроен на вызов функции delete_issue
внутри контроллера issues
. Я создал эту функцию, и она выглядит следующим образом:
class V1::IssuesController < ApplicationController
# other functions
def delete_issue
Issue.find_by(id: params[:issue_id]).delete
render json: {}, status: 200
end
end
Я просто пытаюсь find
решить проблему с идентификатором, который передается как параметр из запроса Ax ios на удаление.
Предполагается удалить его и ничего не возвращать с кодом состояния 200. Вместо этого происходит то, что на моей вкладке "Сеть" внутри инструментов разработчика в моем браузере (Firefox) отображается 200 OK
запрос по методу OPTIONS
. Метод DELETE
не отправляется или что-либо еще.
Я даже пытался закомментировать функцию delete_issue
из IssuesController
, и не было ошибки 404 маршрутизации. Результат был таким же. Я не могу понять, что с ним не так, хотя это, вероятно, довольно очевидная ошибка, которую я не вижу.
Обратите внимание, что я использую Rails 6.