Итак, у меня есть компонент для отображения игроков, который использует мою функцию displayPlayerObject. Проблема в том, что у меня нет правильного маршрута для извлечения в функции и для POST в моем rout.rb. В модельных отношениях есть игроки, принадлежащие к командам, и маршрут получения игрока: «http://localhost: 3000 / api / команды / 1 / Players / 1 » 1, который является идентификатором команды для первого и идентификатор игрока в последнем. Но как мне заставить displayPlayerObject работать так же, как и в синтаксисе? И как это должно выглядеть для POST в Routes.rb? Также я подозреваю, что 'show' моего контроллера игроков также неверен.
Функция displayPlayerObject (отредактировано):
export const displayPlayerObject = (id, teamId, type) => {
return dispatch => {
const data = { id };
fetch(`/api/teams/:team_id/players/show`, {
method: 'post',
headers: {
"Content-Type": "application/json",
Accept: "application/json",
},
body: JSON.stringify(data)
})
.then(res => res.json())
.then(responseJSON => { dispatch({ type , player_object: responseJSON})
})
}
};
My route.rb (отредактировано):
Rails.application.routes.draw do
scope '/api' do
post "teams/show", to: 'teams#show'
post "teams/:team_id/players/show", to: 'players#show'
resources :teams do
resources :players
resources :star_players
end
end
end
Показ контроллера игроков (отредактировано):
def show
Player.find(params[:id])
render json: @player, status: 200
end