Я использую React с Ruby на Rails, я устанавливаю маршруты с React и в компоненте, в рамках маршрута, называемого планировщиком, у меня есть следующее:
CreateMeeting = (data) => {
const url = "meetings/create";
fetch(url, {
method: 'post',
body: JSON.stringify(data),
headers:{
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
}
handleCreateMeeting = (data) =>{
this.CreateMeeting(data);
};
SubmitMeeting = () =>{
const newMeeting={
scheduled: this.state.startDate,
teacher_id: this.props.teacherId,
user_id: this.props.current_user.id,
length: 60
}
this.handleCreateMeeting(newMeeting);
};
Мой маршрутизатор реагирует следующим образом:
export default (
<Router>
<Switch>
<Route path="/" exact component={Home} />
<Route path="/teachers" exact component={Teachers} />
<Route path="/meetings" exact component={Meetings} />
<Route path="/teachers/:id" exact component={Teacher} />
</Switch>
</Router>
);
Компонент, в котором у меня есть запрос на публикацию, находится в маршруте /teachers/:id
В контроллере мое действие создания:
def create
meeting = Meeting.create!(meeting_params)
if teacher
render json: meeting
else
render json: meeting.errors
end
end
private
def meeting_params
params.permit(:user_id, :teacher_id, :scheduled, :length)
end
И Я установил маршрут как:
post 'teachers/meetings/create', to: 'meetings#create'
При выполнении выборки я получаю следующую ошибку.
POST http://localhost:3000/teachers/meetings/create 422 (Unprocessable Entity)
(anonymous) @ VM23:1
Scheduler._this.CreateMeeting @ Scheduler.jsx:24