Я пытаюсь создать форму для создания сообщений (я еще не использую db) в Rocket Rust. Когда я пытаюсь отправить форму, я получаю ошибку 422.
Ошибка:
POST /new_post application/x-www-form-urlencoded:
=> Matched: POST /new_post (new_post_form)
=> Error: The incoming form failed to parse.
=> Outcome: Failure
=> Warning: Responding with 422 Unprocessable Entity catcher.
=> Response succeeded.
Код обработчика:
#[post("/new_post", data="<form>")]
fn new_post_form(form: Form<NewPostForm>) -> Flash<Redirect> {
let form = form.into_inner();
if form.body.is_empty() {
Flash::error(Redirect::to("/new_post"), "NoBodyError");
}
if form.name.is_empty() {
Flash::error(Redirect::to("/new_post"), "NoNameError");
}
if form.name.is_empty() && form.body.is_empty() {
Flash::error(Redirect::to("/new_post"), "NoNameBodyError")
} else {
Flash::error(Redirect::to("/new_post"), "NoNameBodyError")
}
}
Структура формы:
#[derive(FromForm)]
pub struct NewPostForm {
pub name: String,
pub body: String
}
HTML Форма:
<form action="/new_post" method="post">
name:<input type="text" name="name" id="name">
Body:<input type="text" name="body" id="body">
<button type="submit" name="button"></button>
</form>
PS Я думаю, что проблема в HTML форме, а не в Rust. Если бы проблема была в Rust, это дало бы еще одну ошибку.